2

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

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

我尝试在应用程序设置中填写IP地址白名单,但仍然无法正常工作...

4

2 回答 2

4

你在用 Heroku 吗?

如果是这样,您的服务器传出 IP 将在您每次部署时不断变化,一些 Herokus IP 被 Facebook 列入黑名单,因此这确实是一件随机的事情,具体取决于您当时获得的服务器。

当您查询 API 时,使用Proximo等修复您的传出 IP将使您的源 IP 可预测,但它有点贵。

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

于 2013-04-27T04:58:01.217 回答
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 错误。

于 2013-04-30T15:43:05.607 回答