【发布时间】:2013-09-17 14:36:59
【问题描述】:
大家好,任何人都可以告诉我如何像使用 api 一样发布点赞和删除 instagram 吗? 我尝试使用此代码删除类似但我没有从 ajax 调用中得到任何响应。谁能告诉我我在这里做错了什么?这可能在做 php 吗?如何?
xxxxxxxxxxxxxxxxxx_xxxxxxxx ==> Media-Id 例如:23424343243243_2343243243
Instagram API Docs for Deleting Like
<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>
Edited: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;
}
【问题讨论】:
-
您正在执行跨域请求。这在基于浏览器的 javascript 中是不允许的。从服务器 A 加载的代码只能向服务器 A 发出 AJAX 请求。
-
@MarcB 有大量使用 AJAX 访问 Instagram API 的示例。你确定吗?
-
是的,但是他们要么使用 JSONP 绕过跨域限制,要么使用直接从 instagram 加载的 ajax JS 代码。如上所述,JS 代码来自 jquery cdn,包含页面是从 OP 自己的站点加载的。在此配置中,ajax 代码不可能在 instagram 上戳,除非它是 jsonp 请求。
-
感谢您的回复。我认为这是跨域问题。如何从我自己的 php 脚本中向 api 发出 curl 删除请求并从我的 ajax 调用该 php?我不知道如何进行 curl 调用并告诉 curl 是 post 还是 delete 请求!你能告诉我怎么做吗?
-
@user1788736:使用 CURLOPT_CUSTOMREQUEST 设置要使用的“动词”:php.net/manual/en/function.curl-setopt.php
标签: javascript php jquery ajax instagram