Подписка на Instagram API, как получить публикацию?

Я работаю над тем, чтобы понять, как получить результаты подписки в Instagram, которая ищет определенный тег. В конечном счете, я хотел бы сделать так, чтобы изображения размещались с тегом, который я ищу, добавляя ссылку на фотографию, а также имя пользователя в базу данных.

Я смог создать свою подписку без проблем, но теперь я не знаю, как получить информацию POST из подписки.

Работа с двумя файлами...subscribe.php и callback.php

subscribe.php

<?php

//ALL YOUR IMPORTANT API INFO
$client_id = 'XXX';
$client_secret = 'XXX';
$object = 'tag';
$object_id = 'taglookingfor';
$aspect = 'media';
$verify_token='';
$callback_url = '(full URL here)/callback.php';


//SETTING UP THE CURL SETTINGS...
$attachment =  array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'object' => $object,
'object_id' => $object_id,
'aspect' => $aspect,
'verify_token' => $verify_token,
'callback_url'=>$callback_url
);

//URL TO THE INSTAGRAM API FUNCTION
$url = "https://api.instagram.com/v1/subscriptions/";

$ch = curl_init();

//EXECUTE THE CURL...
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output 
$result = curl_exec($ch);
curl_close ($ch);

//PRINT THE RESULTS OF THE SUBSCRIPTION, IF ALL GOES WELL YOU'LL SEE A 200
print_r($result);


?>

callback.php

 <?php

if (isset ($_GET['hub_challenge'])){
    echo $_GET['hub_challenge'];
}

//This is an update
else {

    $myString = file_get_contents('php://input');
    $answer = json_decode($myString);
    echo $answer;
}

?>

В моем callback.php я пытаюсь отразить результаты json_decode... но это также вызывает вопрос, как мне поймать это эхо? Извините, это может быть действительно глупо, но как мне поймать момент, когда скрипт callback.php запускается новым изображением с конкретным тегом, который я ищу. Как я уже упоминал, я надеюсь взять информацию из $answer и вставить часть информации в базу данных.

Я новичок в этом, поэтому любая помощь будет принята с благодарностью. Бесконечно благодарен!!


person melMPLS    schedule 22.01.2013    source источник
comment
Вы получили свои данные в конце концов? у меня такая же проблема   -  person Cool Hand Luke    schedule 26.04.2015


Ответы (3)


Я чувствую твою боль. Их API не самый простой для работы, а их документация оставляет желать лучшего. Тем не менее, это то, что происходит:

  1. Вы отправляете запрос на конечную точку API подписки
  2. Instagram отправляет ответ на ваш файл callback.php
  3. Ответ содержит параметр hub_challenge, который необходимо повторить для подтверждения подписки.
  4. В случае успеха вы получите сообщение на ваш callback.php с идентификатором подписки вашей новой подписки.
  5. Каждый раз, когда вы получаете публикацию на свой callback.php, вам нужно отправить запрос в Instagram для их последних медиафайлов, которые соответствуют вашему тегу.
person Mark D    schedule 29.03.2013

я думаю, что ваш URL-адрес обратного вызова не может получать какие-либо данные сообщения, вы можете попытаться опубликовать что-то на свой URL-адрес обратного вызова.

person hpkong    schedule 18.02.2014

Я надеюсь, что мой этот ответ будет полезен людям, столкнувшимся с подобной проблемой.

person Prafulla Kumar Sahu    schedule 31.05.2017