2013-12-23 5 views
2

Конечная точка для удаления подписки в реальном времени, похоже, перестала работать. Я выступаю завиток «POST» с «DELETE» пользовательского запроса и получения следующий ответ JSON из Instagram:DELETE Подписки в реальном времени в Instagram

{"meta":{"code":200},"data":null} 

Однако, подписка не удаляется. Мой счет активных подписчиков никогда не будет уменьшаться, и я не могу подписаться на новые типы объектов.

Есть ли у кого-нибудь еще эта проблема? Вот моя реализация в PHP (работает нормально в течение нескольких месяцев, пока несколько дней назад):

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_URL, "https://api.instagram.com/v1/subscriptions? client_secret=$client_secret&client_id=$client_id"); 
curl_setopt($curl, CURLOPT_POST, false); 
$resp = curl_exec($curl); 

// Parse JSON                                           \ 

$json = json_decode($resp); 

foreach ($json->data as $subscription) 
{ 
echo "DELETING:\r\n"; 
echo "object:\t$subscription->object\r\n"; 
echo "object_id:\t$subscription->object_id\r\n"; 
echo "aspect:\t$subscription->aspect\r\n"; 
echo "callback URL:\t$subscription->callback_url\r\n"; 
echo "type:\t$subscription->type\r\n"; 
echo "id:\t$subscription->id\r\n\r\n"; 

curl_setopt($curl, CURLOPT_URL, "https://api.instagram.com/v1/subscriptions?client_secret=$client_secret&client_id=$client_id&id=$subscription->object_id"); 
curl_setopt($curl, CURLOPT_POST, false); 
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE'); 
$resp = curl_exec($curl); 

echo $resp."\r\n"; 
} 
+0

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

+0

Пока нет. Я подал заявку на поддержку с Instagram несколько месяцев назад. Некоторое время я думал, что я единственный. Я все еще не могу удалить все мои подписки в реальном времени. – brandonthorpe

ответ

1

Через часов проб и ошибок с завитком, мне удалось получить эту работу, кажется, быть последовательным и работает все время. Основное различие между вашим и моим является установкой этих опций:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); 
curl_setopt($ch, CURLOPT_POST, true); 

Как вы можете видеть, я поставил CUSTOMREQUEST на «УДАЛИТЬ», а затем и установить POST истинно, в таком порядке. Я предполагаю, что, не устанавливая POST в true, он фактически выполнит GET (я мог бы быть очень не прав, хотя). Я также читал о некотором SO-ответе о важности порядка завихрения, так что будьте осторожны. Ниже приведена моя полная функция удаления, если $id не предоставляется, она удалит ВСЕ подписки, поэтому следите за ними.

public function delete($id = "") { 
    CakeLog::write('debug', 'Delete subscription called.'); 

    $clientID = "<<MY clientID>>"; 
    $clientSecret = "<<MY clientSecret>>"; 

    $deleteURL = "https://api.instagram.com/v1/subscriptions"; 
    $deleteParams = "?client_id=".$clientID."&client_secret=".$clientSecret; 

    if ($id == "") { 
     $deleteParams .= "&object=all"; 
    } 
    else { 
     $deleteParams .= "&id=".$id; 
    } 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $deleteURL.$deleteParams); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Should cURL return or print out the data? (true = return, false = print) 
    $output = curl_exec($ch); 
    curl_close($ch); 

    CakeLog::write('debug', 'DELETE SUBSCRIPTION RESULT: ' . $output); 

    $this->redirect(array('action' => 'index')); 

} 

Пожалуйста, дайте мне знать, как она идет, и удача

+0

Спасибо за сообщение. Это все еще не работает для меня. Мне интересно, есть ли проблема, связанная с моими учетными данными доступа к API. Что вы видите как результат вызова curl_exec на вашем конце? – brandonthorpe

+0

Я получаю тот же ответ, что и вы, но он работает - {"meta": {"code": 200}, "data": null}. Как вы проверяете, что ваши подписки все еще существуют? –

+0

Я получаю ошибку сервера 500. $ output - null. Я думаю, что функция удаления не работает instagram http://developers.instagram.com/post/82701625883/api-returning-500-errors-on-specific-ip – neoerol

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