Доступ к понравившимся изображениям API Instagram с помощью Angular

Я пытаюсь получить доступ к JSON понравившихся медиа определенного пользователя instagram, в документации сказано использовать это:

https://api.instagram.com/v1/users/self/media/liked?access_token=ACCESS-TOKEN

как указано здесь: https://instagram.com/developer/endpoints/users/

заменив ACCESS-TOKEN на тот, который дал instagram, что я сделал ниже:

(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 на свой, но ничего не возвращается, что-то не так?

РЕДАКТИРОВАТЬ: я добавил обратный вызов, но все равно он возвращается как неопределенный.


person user1937021    schedule 08.07.2015    source источник
comment
У вашей конечной точки нет обратного вызова, при использовании jsonp требуются обратные вызовы. Вот документы Instagram для запросов jsonp: instagram.com/developer/endpoints   -  person timsmiths    schedule 08.07.2015
comment
спасибо, я добавил конечную точку += &callback=JSON_CALLBACK; так и сейчас: var endpoint = api.instagram.com/v1/users /я/медиа/понравилось?; конечная точка += ?access_token=[ACCESS-TOKEN]; но он все еще возвращается как undefined.   -  person user1937021    schedule 08.07.2015
comment
Попробуйте обратный вызов (ответ).   -  person timsmiths    schedule 08.07.2015
comment
Вы использовали .success(обратный вызов), ваши res.data передаются непосредственно вашему обратному вызову.   -  person timsmiths    schedule 08.07.2015
comment
спасибо, но теперь я получаю параметр Missing access_token URL. Я отредактировал ОП сейчас.   -  person user1937021    schedule 08.07.2015
comment
Одно быстрое замечание: удалите первый '/?' из '.../понравилось/?'   -  person timsmiths    schedule 08.07.2015


Ответы (2)


Чтобы это работало с помощью 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);
});
person timsmiths    schedule 08.07.2015
comment
спасибо, но теперь я получаю параметр Missing access_token URL. - person user1937021; 08.07.2015

Это jsonp, поэтому я предполагаю, что вы должны указать имя функции обратного вызова в своем URL-адресе:

var endpoint = "https://api.instagram.com/v1/users/self/media/liked/?callback=callback";
person Stepan Suvorov    schedule 08.07.2015