我在使用Facebook API的PHP中遇到了一个非常奇怪的问题。所有这些代码都在我的测试服务器(共享主机)中工作。但是当我在生产服务器(Heroku)中运行它时,出现错误。Facebook API - 订阅在回调中超时
我想要做的是当我的应用用户喜欢(或不喜欢)新页面时从Facebook接收实时更新。 这是它是Facebook提供的文档:https://developers.facebook.com/docs/graph-api/real-time-updates
我的代码订阅:
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$facebook->api(
"/" . $app_id . "/subscriptions", "POST", array(
'object' => 'user',
'callback_url' => 'http://' . $url . '/rtu/callback',
'fields' => 'likes',
'verify_token' => $rtu_verify_token,
'access_token' => $app_id . "|" . $app_secret
)
);
我的代码回调:
if (isset($_GET['hub_verify_token']) && isset($_GET['hub_challenge'])) {
$rtu_verify_token = Config::get('variables.rtu_verify_token');
if (($_GET['hub_verify_token'] == $rtu_verify_token)) {
echo $_GET['hub_challenge'];
die();
}
}
$data = file_get_contents("php://input");
$json = json_decode($data);
错误:
FacebookApiException (#2200) callback verification failed: Operation timed out after 6001 milliseconds with 0 bytes received
我已经验证了app_id,url和app_s ecret变量。 再一次,这在我的测试服务器上工作,但不在Heroku中。 我甚至尝试不使用Facebook API并进行卷曲调用,但我得到了同样的错误。
我在想这可能与Heroku有关,但我找不到任何证据。
感谢
而Heroku不允许多个请求只有一个测功机,对吗? 谢谢! –
一个动态只有一个虚拟服务器。你可以在服务器上运行尽可能多的实例) 这里是Procfile运行4个gunicorn实例的例子: “web:python manage.py collectstatic --noinput; gunicorn -w 4 someapp.wsgi” –