2013-12-23 50 views
2

刪除實時訂閱的端點似乎已停止工作。我執行了「刪除」自定義請求捲曲「POST」,並接收來自Instagram的以下JSON響應:在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

我只是新來的Instagram的API,所以以前有沒有工作的這方面的證據,但我也似乎有刪除訂閱問題。你有沒有設法解決這裏發生的事情? –

+0

還沒有。幾個月前,我向Instagram提出了一項支持請求。有一段時間我以爲我是唯一一個。我仍然無法刪除我的所有實時訂閱。 – brandonthorpe

回答

1

經過反覆試驗,捲曲小時,我設法得到這個工作,這似乎是一致的,工程全部時間。你和我之間的主要區別是這些選項的設置:

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

正如你所看到的,我設置了CUSTOMREQUEST爲「刪除」,但隨後又POST設置爲true,按照這個順序。我猜測,如果不將POST設置爲true,它實際上會執行GET(儘管如此,我可能會非常錯誤)。我也讀過一些關於捲曲選項順序的回答,因此請保持謹慎。下面是我的完整刪除功能,如果沒有提供$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個服務器錯誤。 $輸出爲空。我認爲刪除功能不工作instagram http://developers.instagram.com/post/82701625883/api-returning-500-errors-on-specific-ip – neoerol