使用JQuery从Instagram api提取信息

使用JQuery从Instagram api提取信息,jquery,api,jsonp,instagram,Jquery,Api,Jsonp,Instagram,所以最近我一直在尝试通过ajax和jquery向Instagram API发出请求。不过我似乎有点麻烦。我试图从通过GET请求提供的JSON数组中提取可用信息,这些信息似乎只能访问数组的一小部分,其他所有信息都是未定义或空白的。以下是我正在使用的代码: $.ajax({ type: "GET", dataType: "jsonp", cache: false, url: "https://api.instagram.com/v1/tags/olympics/media/recent?client

所以最近我一直在尝试通过ajax和jquery向Instagram API发出请求。不过我似乎有点麻烦。我试图从通过GET请求提供的JSON数组中提取可用信息,这些信息似乎只能访问数组的一小部分,其他所有信息都是未定义或空白的。以下是我正在使用的代码:

$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: "https://api.instagram.com/v1/tags/olympics/media/recent?client_id={clientid}",
success: function(response) {
  for (var i=0; i<25; i++)  
  {
    $("#photos").html(response.data[i].comments.from.username);
  }

  }
});
$.ajax({
键入:“获取”,
数据类型:“jsonp”,
cache:false,
url:“https://api.instagram.com/v1/tags/olympics/media/recent?client_id={clientid}“,
成功:功能(响应){

对于(var i=0;i请尝试将
&callback=?
附加到url

url: "https://api.instagram.com/v1/tags/olympics/media/recent?client_id={clientid}&callback=?",

您的代码是正确的,但问题是您从计算机文件系统查看页面
file://....../index.html
这将不适用于跨域请求

您必须从托管环境运行代码
http://localhost/..../index.html
由于ajax发出http请求,这些请求必须转到同一个域/服务器


您可能还需要在instagram应用程序中设置“网站URL”(在instagrams网站上),instagram API将使用它根据您的
客户端id
对您的请求进行身份验证,以确保它们来自正确的域。简单地说,您必须将文件托管在instagram网站应用程序中指定的同一域上,否则请求将失败。

**更新**
事实上,最后一点似乎不是真的,虽然有些API要求您在应用程序中指定的同一域上托管文件,但instagram没有


只需确保您在托管环境中运行脚本。

您得到了什么响应?您能发布返回的json吗?似乎根本没有返回任何内容,我对这是为什么感到困惑,将&callback=?放在末尾似乎也不起作用。我使用的是
getJSON()
而不是
ajax()
为了抓取我的数据,这里有一个例子说明我是如何抓取的。不幸的是,JSFIDLE似乎在instagrams阻止列表中,但至少你可以看到代码。很酷,好吧,这很有效,但我只得到了一个返回,即我决定尝试从.profile_图片返回,但只有一个图片返回,我的For循环中是否有这样的内容不正确?我应该在末尾再加一次&callback=?吗?这不会有什么不同吗?我在Facebook或Twitter的APIscomments.data.from.profile_图片上从来没有遇到过这样的问题,它也需要自己的循环,因为一张图片可能有多个注释。即comments.data[I].from.profile_图片。最好的办法是做
console.log(data)
,您可以看到返回的JSON的结构。非常感谢您的帮助。我已经在我的web托管网站上实现了它,它工作得非常完美。不过,您肯定正确地认为它必须在同一台服务器上。再次感谢!