我正在尝试访问特定Instagram用户喜欢的媒体的JSON,在它说的文档中使用它:
https://api.instagram.com/v1/users/self/media/liked?access_token=ACCESS-TOKEN
如上所述: https://instagram.com/developer/endpoints/users/
用Instagram给出的ACCESS-TOKEN替换,我在下面做了:
(function(){
var app = angular.module('instafeed', []);
app.factory("InstagramAPI", ['$http', function($http) {
return {
fetchPhotos: function(callback){
var endpoint = "https://api.instagram.com/v1/users/self/media/liked/?";
endpoint += "?access_token=[ACCESS-TOKEN]";
endpoint += "&callback=JSON_CALLBACK";
$http.jsonp(endpoint).success(function(response){
callback(response);
});
}
}
}]);
app.controller('ShowImages', function($scope, InstagramAPI){
$scope.layout = 'grid';
$scope.data = {};
$scope.pics = [];
InstagramAPI.fetchPhotos(function(data){
$scope.pics = data;
console.log(data)
});
});
})();
显然我已经用我的ACCESS-TOKEN取代了,但没有回复,是否有不正确的东西?
编辑:我添加了回调但仍然以未定义的形式返回。
答案 0 :(得分:1)
要使用jsonp使这项工作正常,请将以下内容添加到您的端点url:
&callback=JSON_CALLBACK
您的回调需要命名为“JSON_CALLBACK”。在这里找出原因:https://docs.angularjs.org/api/ng/service/ $ http#jsonp
否则,要做一个简单的GET请求......
$http.get(endpoint).success(function(data){
callback(data);
});
答案 1 :(得分:0)
它是jsonp,所以我猜你应该在你的网址中指定回调函数的名称:
var endpoint = "https://api.instagram.com/v1/users/self/media/liked/?callback=callback";