2013-12-23 6 views
2

실시간 구독을 삭제하기위한 끝점이 작동하지 않는 것 같습니다. 나는 '삭제'를 지정 요청 컬 'POST'를 수행하고 인스 타 그램에서 다음과 같은 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

나는 인스 타 그램의 API 만 새로운, 그래서 이것의 증거는 이전에 작동하지 않습니다,하지만 나는 또한 구독을 삭제하는 데 문제가 될 것 같다 . 여기서 일어난 일을 해결할 수 있었습니까? –

+0

아직 없습니다. 몇 개월 전에 Instagram과 지원 요청을했습니다. 잠시 동안 나는 유일한 사람이라고 생각했습니다. 내 실시간 구독을 모두 삭제할 수는 없습니다. – brandonthorpe

답변

1

, 나는이 작업을 얻을 수 있었다, 일치하는 것으로 보인다 및 모든 작동 시간.

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

당신이 볼 수 있듯이, 나는 "삭제"를 할 수있는 CUSTOMREQUEST를 설정, 그러나 또한 위해, true로 POST를 설정 : 당신과 나의 사이의 주요 차이점은 이러한 옵션의 설정입니다. 나는 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 서버 오류가 발생합니다. $ 출력이 null입니다. 나는 delete 함수가 작동하지 않는다고 생각한다. http://developers.instagram.com/post/82701625883/api-returning-500-errors-on-specific-ip – neoerol

관련 문제