2015-06-15 2 views
0

Я новичок в instagram, основываясь на обновлениях в режиме реального времени. Не понимаю процесс, может ли кто-нибудь просветить меня, как создать URL-адрес обратного вызова в php? Из редиректора клиентом редиректора необходимо связать этот URL-адрес обратного вызова? Ниже код, как я сделал для обратного вызова URLшаги подписки на подписку instagram на обновлениях в режиме реального времени

$checkin_url = "https://api.instagram.com/v1/subscriptions/"; 

//$instagram[] for client_id, client_secret, redirect_uri 
$parameters = array(
    'client_id' => $instagram['client_id'], 
    'client_secret' => $instagram['client_secret'], 
    'object' => 'tag', 
    'aspect' => 'media', 
    'object_id' => 'nofilter', 
    'callback_url' => $instagram['redirect_uri'] 
); 

$curl = curl_init($checkin_url); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $parameters); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$response = curl_exec($curl); 

print($response); 

ответ

0

Вы пропустили важный шаг в процессе подписки (It's in the doc):

При проводке с информацией выше, чтобы создать новую подписку, мы одновременно подать запрос GET на ваш обратного вызова URL [...] для проверки подписки, ваш сервер должен ответить на запрос GET с параметром hub.challenge только:

Другими словами, когда вы создать su bscription, они отправляют запрос GET вашему URI обратного вызова с некоторыми параметрами, и вам нужно вернуть параметры hub.challenge (hub_challenge в PHP, потому что с PHP параметры с . преобразуются в _).

Итак, в вашем URI обратного вызова вам необходимо проверить метод запроса. Если это GET, выполните следующие действия:

exit($_GET['hub_challenge']); 

и если это POST, это обновление подписки, поэтому вы должны JSON декодировать необработанный тело, чтобы получить ДАННЫЕ, как указано в док»:)

0

Привет Томас, я получил сообщение об ошибке, и понятия не имею, почему он не работает ...

строка (92) "{" мета ": {" ERROR_TYPE ":" APISubscriptionError», "код": 400, "error_messa GE ":" Invalid ответ "}}"

От подписки:

$callback_url = "http://myhost.com/auth/instagram/callback"; 

    $params = array(
     'client_id' => $ig_client_id, 
     'client_secret' => $ig_client_secret, 
     'aspect' => "media", 
     'object' => "tag", 
     'object_id' => "greentea", 
     'callback_url' => $callback_url 
    ); 

    $defaults = array(
     CURLOPT_URL => 'https://api.instagram.com/v1/subscriptions/', 
     CURLOPT_POST => true, 
     CURLOPT_POSTFIELDS => $params, 
     CURLOPT_SSL_VERIFYPEER => false, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_HTTPHEADER => array('Accept: application/json') 
    ); 
    $ch = curl_init(); 
    curl_setopt_array($ch, $defaults); 
    $jsonData = curl_exec($ch); 
    curl_close($ch); 
    var_dump($jsonData); 

От обратного вызова:

if (isset ($_GET['hub_challenge'])){ 
    exit($_GET['hub_challenge']); 
} 
else { 
    $rawdata = file_get_contents('php://input'); 
    $decode_data = json_decode($rawdata); 
    echo $decode_data; 
} 
Смежные вопросы