我的网站使用“facebook api sdk”来访问用户的 facebook 信息,然后登录。
产生以下错误消息:“错误:无法访问 Facebook API 客户端(在 users_getInfo(693671783) 上失败)。结果:; OAuthException: (#5) 未经授权的源 IP 地址”。我尝试使用不同的 facebook 插件(Nextend Facebook Connect),但产生了相同的错误消息。
我尝试在应用程序设置中填写IP地址白名单,但仍然无法正常工作...
你在用 Heroku 吗?
如果是这样,您的服务器传出 IP 将在您每次部署时不断变化,一些 Herokus IP 被 Facebook 列入黑名单,因此这确实是一件随机的事情,具体取决于您当时获得的服务器。
当您查询 API 时,使用Proximo等修复您的传出 IP将使您的源 IP 可预测,但它有点贵。
如果您有一个带有单个测功机的小型应用程序,您可以继续回收,heroku ps:restart直到您获得一台“好”服务器。
如果您有多个实例( 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 错误。