未经授权的源IP地址使用facebook sdk

时间:2013-03-01 22:15:33

标签: facebook sdk

我的网站使用“facebook api sdk”访问用户的facebook信息,然后将其登录。

产生以下错误消息:“错误:无法访问Facebook API客户端(在users_getInfo(693671783)上失败)。结果:; OAuthException:(#5)未经授权的源IP地址”。我尝试使用不同的facebook插件(Nextend Facebook Connect),但会产生相同的错误消息。

我尝试在应用设置中填写IP地址白名单,但仍无效...

2 个答案:

答案 0 :(得分:4)

您使用的是Heroku吗?

如果您这样,您的服务器传出IP将在每次部署时不断变化,一些Herokus IP被Facebook列入黑名单,因此根据您当时获得的服务器,它实际上会随机发生。

使用 Proximo 等修复您的外发IP会在查询API时使您的源IP可预测,但有点昂贵。

如果您有一个带有单个dyno的小应用程序,您可以继续使用heroku ps:restart进行回收,直到获得一个“好”服务器。

答案 1 :(得分:3)

如果您有多个实例(Dynos和Workers),可能并非所有实例都被列入黑名单。运行'heroku ps:restart'可能会将一些好的实例移到坏的IP上。相反,我建议只通过

回收不良实例
heroku restart bad_instance_name --app=your_app_name

您可以通过grepping找到实例

heroku logs -t --app=your_app_name | grep 'Unauthorized source IP address'

结果输出将显示实例名称。

这对我们来说比'heroku ps:restart'好得多,因为我们有超过5个正在运行的实例,并且在任何时候只有1或2个有错误的IP。