无法通过Facebook图表获取用户个人资料图片api

时间:2018-05-22 19:24:26

标签: angular facebook facebook-graph-api facebook-javascript-sdk

my angular 2 app使用facebook登录获取用户名,电子邮件和个人资料图片。我能够获得用户名和电子邮件但是facebook api提供的个人资料图片的网址不起作用。

这是应用程序的流程

  1. 用户从我的应用程序登录到Facebook,并拥有姓名,电子邮件和个人资料照片的权限
  2. 使用Facebook api登录应用程序请求姓名,电子邮件和个人资料照片
  3. app从facebook api获取回复,其中包含下面所有请求的数据示例
  4. 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.但是当使用vpn访问它时,相同的url开始工作。任何人请弄清楚问题是什么以及如何解决它。 注意:429错误代表太多请求,但在此应用程序的facebook开发人员仪表板页面上,它表示您的应用尚未达到限速级别。

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

2 个答案:

答案 0 :(得分:1)

如上所述,其工作/来源的互联网服务提供商的问题来自中国。因此,您需要来自任何地区或网址所在区域的中立ISP。

此问题的唯一解决方案是您应该在不同的ISP上设置服务器(表示角度2/4的最佳选项)。服务器从该URL获取图像并将其返回给客户端。

错误的架构:

客户============================================== ====>包含图像的服务器

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

正确的架构:

Angular ===================> 快递 ==========> 包含图像的服务器

Angular < =================== 快递< ========== 包含图像的服务器

答案 1 :(得分:0)

如果这是通过VPN工作,它听起来像一个权限问题。 VPN允许您运行的本地计算机或服务器没有哪些权限?