我的网站使用“facebook api sdk”访问用户的facebook信息,然后将其登录。
产生以下错误消息:“错误:无法访问Facebook API客户端(在users_getInfo(693671783)上失败)。结果:; OAuthException:(#5)未经授权的源IP地址”。我尝试使用不同的facebook插件(Nextend Facebook Connect),但会产生相同的错误消息。
我尝试在应用设置中填写IP地址白名单,但仍无效...
答案 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。