无法使用 Facebook 图获取用户个人资料图片 api

Unable to get User Profile Picture With Facebook graph api

my angular 2 应用程序使用 facebook 登录获取用户名、电子邮件和个人资料照片。我能够获取用户名和电子邮件但是 url 对于 facebook api 提供的个人资料图片不起作用。

这是应用程序的流程

  1. 用户从我的应用程序登录到 facebook 并获得姓名、电子邮件和个人资料图片的权限
  2. 登录应用程序后,使用 Facebook 请求姓名、电子邮件和头像 api
  3. 应用从 facebook api 获得响应,其中包含下面所有请求的数据示例

response : { email:"user@mail.com" id:"992219737612453" name:"user name" picture: { data:height:50 is_silhouette:false url:"https://lookaside.facebook.com/platform/profilepic/? asid=992219737612453&height=50&width=50&ext=1527274398 &hash=AeQwwpehQqNhgVxr" width:50 } }

但问题是在上面的图片响应中给出的 url 不起作用并给出错误 429。但是同样的 url 在使用 vpn 访问时开始工作。任何人都请弄清楚问题是什么以及如何解决。 注意:429 错误代表请求过多,但在该应用程序的 Facebook 开发者仪表板页面上,它表示您的应用程序尚未达到速率限制级别。

更新:URL 在使用属于中国的特定 ISP 访问时被阻止。但问题是我的大多数用户都使用该互联网服务提供商。

如果这是通过 VPN 运行的,则听起来像是权限问题。 VPN 可以允许您 运行 所在的本地计算机或服务器没有哪些权限?

如问题所述,这是 works/origin 来自中国的互联网服务提供商的问题。因此,您需要来自任何地区或 url 工作地区的中立 ISP。

此问题的唯一解决方案是您应该设置一个服务器(表示 angular 2/4 的最佳选择)托管在不同的 ISP 上。服务器从 url 获取图像并 returns 返回给客户端。

错误的架构:

客户端============================================ ======> 服务器包含图片

客户端 <===============429Error(由于不同的 ISP)<=========== 服务器包含图像

正确的架构:

Angular===================>快递==== ======> 服务器包含图片

Angular<===================快递<=== ======= 服务器包含图片