2013-08-10 1 views
0

Я хочу подписаться на picture объект конкретной страницы Facebook. Для этого я следую за этим article. Я сделал загруженный файл PHP, который будет служить обратным вызовом here. Код ниже:Не удалось выполнить проверку обратного вызова Facebook 2200

<?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_ID и client_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, где и как я могу это указать?

+0

Вы прочитали [документацию] (https://developers.facebook.com/docs/reference/api/realtime/)? Является ли ваш callback определенно ответом на «hub.challenge», когда Facebook делает запрос проверки на ваш URL обратного вызова? – Igy

+0

@Igy Я не знаю. Я точно следил за учебником. Не упоминал ничего о 'hub.challenge'. Как бы я определил, было это или нет? – lbrahim

+0

Я конкретно ссылаюсь на часть с надписью «Проверка подписки»: вы подтвердили правильность этой части? – Igy

ответ

0

Сначала вы должны использовать HTTP-метод POST вместо отправки «.. & метод = POST & ..»

Во-вторых, ваш сервер должен быть доступен из Интернета.

И, в-третьих, ваш сервер должен иметь возможность обрабатывать параллельные запросы, потому что facebook отправляет запросы проверки одновременно.

Смежные вопросы