16

我的 Heroku PHP facebook 应用程序日志中不断出现以下错误:

[app web.20] PHP Fatal error: Uncaught OAuthException: (#5) Unauthorized 
source IP address\n thrown in /app/www/sdk/src/base_facebook.php on line 1238

我还注意到,在我回收进程之前,相同的服务器会一直产生这个错误(即在上面的情况下,web.20web.6会不断失败),但之后heroku ps:restart会是不同的服务器不断失败。

现在,在做了一些研究之后,我注意到人们一直建议我在 Facebook 应用程序 -> 高级设置页面中将我的服务器 IP 列入白名单,这意味着 Facebook 保留了一份列入黑名单的 IP 列表,在这里您可以逐个允许访问它们。这让我想知道为什么 Facebook 明确鼓励其用户将 Heroku 用于其 Facebook 应用程序,同时将其服务器列入黑名单。

所以基本上:

  1. Heroku 是 Facebook 的托管合作伙伴
  2. 每次应用程序被回收时,Heroku 都会为其用户提供不可预测的 IP 地址
  3. Facebook 已将 Heroku 的许多服务器列入黑名单(据我统计,大约十分之一)
  4. 因此,您永远无法保证您的应用程序会针对您的所有请求访问其 API

我的问题是:

像我这样的开发人员如何在 Facebook 赞助的 Heroku 环境中配置生产就绪的应用程序,而这种环境显然必然会在大量 API 请求上失败?

4

3 回答 3

7

这很奇怪。我们正在调查它。

编辑:这应该得到解决。请注意,由于恶意行为,Facebook 阻止了这些 IP。我们将继续与他们合作以防止再次发生这种情况,但您可以诚实做的最好的事情是使用提供非共享 IP 的托管服务提供商。

也见这里:https ://developers.facebook.com/bugs/649166715098648

于 2013-04-27T19:04:51.697 回答
3

Facebook 似乎出于某种原因开始屏蔽 Heroku IP。这不是 Heroku 控制的事情,只有 Facebook 可以解决的事情。我会联系 Facebook 支持。

于 2013-04-29T12:55:03.377 回答
0

在 Heroku 上,试用Proximo之类的附加组件,看看会发生什么。我刚刚在我的设备上进行了配置,现在我正在监视以查看是否会发生同样的情况。

于 2017-04-24T23:02:31.827 回答