开发者问题收集

无法从 Shopify 调用 Instagram API

2015-10-22
822

我正在尝试从我的 shopify 网店使用 instagram API。我使用的是 javascript。当我使用 jQuery 时,instagram 不会传回正确的标头。

这是我的代码(调用已经验证):

jQuery

$.getJSON( call, function( data ) {
  alert("sdfewsf");
}).error(function(jqXHR, textStatus, errorThrown) {
  console.log("error " + textStatus);
  console.log("incoming Text " + jqXHR.responseText);
});

这是我收到的错误:

XMLHttpRequest cannot load https://api.instagram.com/v1/tags/%7Btag-name%7D/media/recent?client_id=95d4426edafc476d9b76a5dacc4c12ca . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://www.99centrazor.com ' is therefore not allowed access. The response had HTTP status code 404.

我也尝试过 instafeed.js,但它不起作用。

Instafeed.js

 var feed = new Instafeed({
  get: 'tagged',
  tagName: 'awesome',
  clientId: clientId
});
feed.run();

这会返回一个对象,但运行函数不起作用 --

Uncaught TypeError: Cannot read property 'appendChild' of null

有人知道让这个东西工作的方法吗?!?! 谢谢!

2个回答

我将缩小对第二个问题的回答范围,关于 instafeed.js。

您看到的错误是由于 instafeed.js 未在页面上找到其目标元素而导致的。

要解决此问题,请确保您已将 <div id="instafeed"></div> 放在页面上,并且在页面完全加载后加载 instafeed.js:

$(document).ready(function() {
  var feed = new Instafeed({
    get: 'tagged',
    tagName: 'awesome',
    clientId: clientId
  });
  feed.run();
});
Steven Schobert
2015-10-24

$.getJSON() 无法作为

browsers will tend to block the cross domain HTTP GET requests

工作。您可以使用 JSONP 作为解决方法。

Instagram API 支持 JSONP 端点 /URL,例如:

https://api.instagram.com/v1/tags/coffee/media/recent?access_token=ACCESS-TOKEN&callback=callbackFunction

如果您不熟悉 JSONP,可以查看 此处

的示例
prasun
2015-10-22