Php 删除Instagram中的实时订阅

Php 删除Instagram中的实时订阅,php,curl,instagram,subscription,http-delete,Php,Curl,Instagram,Subscription,Http Delete,删除实时订阅的终结点似乎已停止工作。我正在执行带有“DELETE”自定义请求的cURL“POST”,并从Instagram收到以下JSON响应: {"meta":{"code":200},"data":null} 但是,不会删除订阅。我的活动订阅计数将永远不会减少,并且我无法订阅新的对象类型 还有其他人有这个问题吗?以下是我在PHP中的实现(几个月来一直工作正常,直到几天前): 通过对curl的几个小时的反复试验,我成功地使它工作了,它似乎是一致的,并且一直有效。您和我的主要区别在于这些选项的

删除实时订阅的终结点似乎已停止工作。我正在执行带有“DELETE”自定义请求的cURL“POST”,并从Instagram收到以下JSON响应:

{"meta":{"code":200},"data":null}
但是,不会删除订阅。我的活动订阅计数将永远不会减少,并且我无法订阅新的对象类型

还有其他人有这个问题吗?以下是我在PHP中的实现(几个月来一直工作正常,直到几天前):


通过对curl的几个小时的反复试验,我成功地使它工作了,它似乎是一致的,并且一直有效。您和我的主要区别在于这些选项的设置:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POST, true);
如您所见,我将CUSTOMREQUEST设置为“DELETE”,但随后也按该顺序将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'));

}
公共函数删除($id=”“){
CakeLog::write('debug','Delete subscription called');
$clientID=“”;
$clientSecret=“”;
$deleteURL=”https://api.instagram.com/v1/subscriptions";
$deleteParams=“?client_id=“.$clientID.”和client_secret=“.$clientSecret;
如果($id==“”){
$deleteParams.=“&object=all”;
}
否则{
$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);//curl应该返回或打印数据吗?(true=return,false=print)
$output=curl\u exec($ch);
卷曲关闭($ch);
CakeLog::write('debug','DELETE SUBSCRIPTION RESULT:'。$output);
$this->redirect(数组('action'=>'index'));
}

请让我知道进展如何,祝你好运

我只是刚接触Instagram API,因此之前没有证据表明这一点有效,但我似乎在删除订阅时也遇到了问题。你知道这里发生了什么吗?还没有。几个月前我向Instagram提交了一份支持请求。有一段时间我以为我是唯一的一个。我仍然无法删除所有的实时订阅。谢谢你的帖子。这对我还是不起作用。我想知道我的API访问凭据是否存在特定的问题。您看到的curl_exec调用的输出是什么?我得到的响应与您相同,但它确实有效-{“meta”:{“code”:200},“data”:null}。您如何检查您的订阅是否仍然存在?我收到500个服务器错误$输出为空。我认为instagram的删除功能不起作用
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'));

}