Facebook图形用户图片不会在移动设备上显示

时间:2018-03-27 13:08:15

标签: facebook facebook-graph-api

我使用网址https://graph.facebook.com/{app_user_id}/picture?width=120&height=120在我的应用上显示用户图片,但从今天早上开始,它已停止在移动设备上运行。

现在,相同的网址会重定向到https://lookaside.facebook.com/platform/profilepic/?asid={app_user_id}&height=120&width=120。此网址适用于桌面网络,但在移动设备上,它会再次重定向到https://m.facebook.com/platform/profilepic/?asid={app_user_id}&height=120&width=120,移动网络拒绝输出图像。如果我尝试在地址栏中加载它,则会下载而不是显示。

我在Facebook图表api上搜索了有关此内容的任何更改,但没有找到任何内容。任何提示要解决这个问题?感谢。

3 个答案:

答案 0 :(得分:8)

这似乎是一个错误。今天早上开始发生在我的应用程序中。至今还没有解决。

在Facebook for Developers上提交的一些错误报告:

  1. Profile Pictures Can't Load
  2. Graph API Profile picture doesn`t work on mobile
  3. Cross site policy error while accessing graph pictures

答案 1 :(得分:5)

我今天遇到了同样的问题,我找到了解决方案,这对我有用。

登录后,我们会看到个人资料照片网址

http://graph.facebook.com/11111111111/picture?type=large&height=320&width=420
  

11111111111是您的社交ID / facebook id

现在我们需要更改此网址才能显示图片, 这是代码。

try {
     profile_pic = new URL("https://graph.facebook.com/" + id + "/picture?type=large");
     Log.i("profile_pic", profile_pic + "");
     Picasso.with(getContext()).
     load(profile_pic.toString())
     .placeholder(R.drawable.img)
     .into(imageviewId);
     }
catch (MalformedURLException e) {
       e.printStackTrace();
    }
  

id是您的socialid / facebook id

简而言之,我们只需要从网址中删除& height = 320& width = 420

  

你可以比较两个网址:

http://graph.facebook.com/11111111111/picture?type=large&height=320&width=420

https://graph.facebook.com/11111111111/picture?type=large

,是的,您还需要将http更改为https

答案 2 :(得分:3)

虽然我没有找到任何正式公告,但Facebook最近几天改变了他们的api,现在当你请求用户的公开个人资料时,图片网址有额外的参数, ext 哈希

调用没有这些参数的url会返回404错误。

不确定更改是否仅影响页面范围ID。

目前,当您请求用户的公开个人资料数据时,网址如下所示 https://lookaside.facebook.com/platform/profilepic/?psid=PAGE_SCOPED_ID&height=1024&ext=1522585606&hash=AeThc8c7EQDFgShs

之前只是

https://lookaside.facebook.com/platform/profilepic/?psid=PAGE_SCOPED_ID&height=1024

在我看来,目前唯一已知的解决方案是请求新的公开个人资料数据并更新数据库。

希望有所帮助。