привет всем может кто-нибудь сказать мне, как я могу опубликовать подобное и удалить instagram, как используя api? Я попытался удалить подобное, используя этот код, но я не получаю никакого ответа от вызова ajax. может ли кто-нибудь сказать мне, что я делаю неправильно здесь? Это возможно делать php? как?
xxxxxxxxxxxxxxxxxx_xxxxxxxx ==> Media-Id, например: 23424343243243_2343243243
Документы API Instagram для удаления
<html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> function deleteLike() { alert("inside function"); var url = "https://api.instagram.com/v1/media/xxxxxxxxxxxxxxxxxx_xxxxxxxx/likes?access_token=XXXX"; $.post(url, { "method": "delete", }, function(data) { var ajaxResponse = data; alert("success"+ajaxResponse); }) } </script> </head> <body onload="deleteLike();"> </html>
Отредактировано: cross domain php curl: (но как это сказать, если это метод post или delete? "
$url = "https://api.instagram.com/v1/media/xxxxxxxxxxxxxxxxxx_xxxxxxxx/likes?access_token=XXXX"; $api_response = get_data(''.$url); $record = json_decode($api_response); // JSON decode /* gets the data from a URL */ function get_data($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); curl_close($ch); return $data; }
EDIT: согласно спецификациям API, вам нужно использовать запрос типа DELETE
. Для этого укажите {type: "DELETE"}
, а не {"method": "delete"}
и используйте $.ajax()
. См. Соответствующий вопрос здесь: Как отправить запрос PUT / DELETE в jQuery?
Вы уверены, что ваш запрос POST выполняется вообще? Он может вообще не работать, пожалуйста, проверьте запросы в Инструментах разработчика / Firebug / и т. Д. И инициализируйте свой запрос jQuery способом, не используйте навязчивый JS:
$(function(){ deleteLike(); });
Как вы используете параметр success
вам нужно объявить функции с большим количеством параметров: success(data, textStatus, jqXHR)
. Это может также вызвать неправильное поведение. Пожалуйста, прочитайте документы здесь: http://api.jquery.com/jQuery.post/
Я предлагаю вам использовать более .done()
функцию .done()
:
$.post(url, { "method": "delete"}) .done(function(data) { var ajaxResponse = data; alert("success: " + ajaxResponse); }) .fail(function() { // check for error here });
Вы также определенно должны быть заинтересованы в проверке результата .fail()
– скорее всего, вы пропустили что-то во время подготовки запроса.