Facebook 2200回调验证失败

时间:2013-08-10 15:23:37

标签: php facebook api facebook-graph-api

我想订阅特定Facebook页面的picture对象。为了做到这一点,我遵循这个article。我上传了可用作回调here的PHP文件。代码如下:

<?php                                    
/**
 * This is sample subscription endpoint for using Facebook real-time update
 * See http://developers.facebook.com/docs/api/realtime to additional
 * documentation
 */

// Please make sure to REPLACE the value of VERIFY_TOKEN 'abc' with 
// your own secret string. This is the value to pass to Facebook 
//  when add/modify this subscription.
define('VERIFY_TOKEN', 'app_code_123');                                    
$method = $_SERVER['REQUEST_METHOD'];                             

// In PHP, dots and spaces in query parameter names are converted to 
// underscores automatically. So we need to check "hub_mode" instead
//  of "hub.mode".                                                      
if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe' &&       
    $_GET['hub_verify_token'] == VERIFY_TOKEN) {
  echo $_GET['hub_challenge'];
} else if ($method == 'POST') {                                   
  $updates = json_decode(file_get_contents("php://input"), true); 
  // Replace with your own code here to handle the update 
  // Note the request must complete within 15 seconds.
  // Otherwise Facebook server will consider it a timeout and 
  // resend the push notification again.
  error_log('updates = ' . print_r($updates, true));              
}
?>

然后我按照文章中的说明得到了我的access_token,其中client_id替换为APP_IDclient_secret替换为APP SECRET来自我的应用详情: https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=<REMOVED APP ID>&client_secret=<REMOVED CLIENT SECRET>

然后尝试创建订阅: https://graph.facebook.com/<REMOVED APP ID>/subscriptions?access_token=<REMOVED APP ACCESS TOKEN>object=user&fields=feed&verify_token=app_code_123&method=post&callback_url=http://www.shameemcompany.com/facebook.php

但它失败并出现错误:

"message": "(#2200) callback verification failed: ",
      "type": "OAuthException",
      "code": 2200

我想订阅特定的Facebook页面,以便在何处或如何指定?

1 个答案:

答案 0 :(得分:0)

首先,你必须使用HTTP POST方法,而不是发送&#34; ..&amp; method = POST&amp; ..&#34;

其次,您的服务器必须可以从互联网上访问。

第三,您的服务器必须能够处理并发请求,因为Facebook会同时发送验证请求。