毕加索图书馆今天停止与Facebookgraphics图片链接工作

在我的应用程序中,我使用毕加索图书馆从url加载图像。 这是一个很好的工作,很容易导入和可用的图书馆,只是做我需要的东西。

但是,今天它停止工作,而不是在开发时停止编译apk的工作。

所以当我search了我find这个越野车的原因之后,

我使用Facebookgraphicsurl加载个人资料图片。

这里是一个像: 简介pictre ,

链接实际上是“ http://graph.facebook.com/1464090949/picture?type=large ”

但它redirect到: https : //fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg

当然,这两个URL调用在浏览器中工作,你可以看到个人资料图片。

但是,当我testing与毕加索的两个链接:

ImageView iv = (ImageView)findViewById(R.id.imageView1); //Url1 NOT working, loads nothing. String url1 = "http://graph.facebook.com/1464090949/picture?type=large"; //Url2 is the same as URL1, i just copied it from a browser, and this is working String url2 = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg"; Picasso.with(this).load(url2).into(iv); 

所以结论是,facebook可能会改变一些东西,从现在开始,毕加索无法从graphics加载图像。

任何人都可以build议我做一些工作? 当然,我可以尝试不同的图书馆,但是如果有另一种方式,我会很开心。

Solutions Collecting From Web of "毕加索图书馆今天停止与Facebookgraphics图片链接工作"

Workaround1:

从http更改为https

工作: https : //graph.facebook.com/1464090949/picture?type=large

不工作: http : //graph.facebook.com/1464090949/picture?type=large

Workaround2:

在这个话题上find了解决办法。

如果你想例如: http : //graph.facebook.com/1464090949/picture?type=large

您可以使用的个人资料图片:

https://graph.facebook.com/1464090949/?fields=picture.type(large)

其中返回一个JSON对象:

  { "id": "1464090949", "picture": { "data": { "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg", "is_silhouette": false } } } 

和田! 在那里。 url的关键是您可以用来加载图片的redirecturl。

(这将需要oAuth ,我没有testing,只是坚持与解决方法1)

尝试这个。 为我完美工作

依赖:编译“com.squareup.okhttp:okhttp:2.5.0”

 Picasso.Builder builder = new Picasso.Builder(mContext); builder.listener(new Picasso.Listener() { @Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { /*holder.getIvSpeakerPicture() .setImageDrawable(context.getResources() .getDrawable("your drawable id"));*/ } }); builder.downloader(new OkHttpDownloader(mContext)); builder.build().load(image).into(viewHolder.image); 

如果您像我一样使用Amazon AWS CloudFront,则可以访问此页面,了解Amazon如何设置您的URL转发的详细说明。

至less,毕加索要使用redirect的URL,您的URL必须支持https。 那是。 https://yourdomain.com应该redirect到https://yourAWScloudfrontdomain.net

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#CNAMEsAndHTTPS