无法使用 Facebook 图获取用户个人资料图片 api
Unable to get User Profile Picture With Facebook graph api
my angular 2 应用程序使用 facebook 登录获取用户名、电子邮件和个人资料照片。我能够获取用户名和电子邮件但是 url 对于 facebook api 提供的个人资料图片不起作用。
这是应用程序的流程
- 用户从我的应用程序登录到 facebook 并获得姓名、电子邮件和个人资料图片的权限
- 登录应用程序后,使用 Facebook 请求姓名、电子邮件和头像 api
- 应用从 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<===================快递<=== ======= 服务器包含图片
my angular 2 应用程序使用 facebook 登录获取用户名、电子邮件和个人资料照片。我能够获取用户名和电子邮件但是 url 对于 facebook api 提供的个人资料图片不起作用。
这是应用程序的流程
- 用户从我的应用程序登录到 facebook 并获得姓名、电子邮件和个人资料图片的权限
- 登录应用程序后,使用 Facebook 请求姓名、电子邮件和头像 api
- 应用从 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<===================快递<=== ======= 服务器包含图片