2015-11-12 2 views
0

У меня возникли проблемы с подпиской на пользователей на Instagram. Проблема подписки работает правильно, и большинство пользователей подписывается. Их обновления работают полностью, как ожидалось.Обновления в режиме реального времени - пользовательские подписки

documentation имеет «myVerifyToken» Я предполагаю, что это токен пользователя, который подписывается, или это случайная уникальная строка, которую я создаю для отправки?

Вот результат я получаю только я подписался:

{"meta":{"code":200},"data":{"object":"user","object_id":null,"aspect":"media","callback_url":"http:\/\/urlmremoved\/instagram","type":"subscription","id":"000000000"}} 

Это говорит мне, что подписка пользователя была успешной, однако, после того, как 6 людей присоединиться моим приложением и пройти через процесс OAuth успешно только Поста я получаю это от первого члена быть заверены ...

подписка Код (работает хорошо для большинства пользователей):

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

     //$instagram[] for client_id, client_secret, redirect_uri 
     $parameters = array(
      'client_id' => '{key}', 
      'client_secret' => '{secret}', 
      'object' => 'user', 
      'aspect' => 'media', 
      'verify_token'=>$access_token, 
      'callback_url' => '{callback url}' 
     ); 

     $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); 
     curl_close($curl); 
     $data = json_decode($response,false); 

Входящий P Сценарий OST (работает красиво):

// Catches realtime updates from Instagram 
    if ($_SERVER['REQUEST_METHOD']==='POST') { 
     // Retrieves the POST data from Instagram 
     $update = file_get_contents('php://input'); 
     $data = json_decode($update); 

     foreach($data as $k => $v) {// can be multiple updates per call 
     // load temp items into the database. 
      $sub_id = $v->subscription_id; //Contains the JSON values 
      $user = $v->object_id; 
      $time = $v->time; 
      $changed = $v->changed_aspect; 

      $sql = "INSERT INTO temp (tempId,tempCode,tempData1,tempData2,tempData3,tempData4,tempLong,tempTime) 
        VALUES (NULL, 'IG', '".$changed."', '".$_SERVER['REMOTE_ADDR']."', '".$sub_id."', '".$time."', '".$update."', CURRENT_TIMESTAMP)"; 

      $account->mysql_Query($sql); 

     } // END foreach. 

    } // END if 

ответ

0

Instagram предлагает только обновления в реальном времени для всех пользователей, которым предоставляются права доступа к клиенту. Когда вы подписываетесь на эту конечную точку, вы начнете получать обновления для уже авторизированных учетных записей. После авторизации другого пользователя вы также получите эти обратные вызовы без необходимости подписываться снова.

Из документации Instagram:
At the current moment we only allow you to subscribe to all users that have authenticated your application - not individual users.

+0

Так что вы говорите, подтвердил, что я читал. Я только подписываю ** один раз ** пользователям ... затем автоматически добавляется любой пользователь, который проходит процесс oAuth. Некоторые пользователи прошли авторизационный процесс, но их сообщения в режиме реального времени не подталкиваются. – Philip

+0

Вы только подписываетесь один раз на объект-> пользователь с аспект-> медиа, а затем получаете ВСЕ записи пользователей auth'd. Тем не менее, я испытываю подобную проблему, много пропущенных сообщений от пользователей, у которых есть auth'd. – ggwarpig

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