Instagram API - 检索其他用户的照片

时间:2014-12-21 00:50:13

标签: jquery ajax api instagram

使用Instagram API,我可以返回我自己最近的照片:

https://api.instagram.com/v1/users/[my-user-id]/media/recent?client_id=[my-client-id]

但是,我无法使用[other-user-id]检索其他用户,即使我能够在API console中执行此操作。这是我正在使用的JavaScript代码

$.ajax({
    type:'post',
    url:'https://api.instagram.com/v1/users/[my-user-id]/media/recent?client_id=[client-id]', 
    dataType:'jsonp',
    success:function(data){
        console.log('got data ', data)
    }
})

注意,使用帖子可以避免Access-Control-Allow-Origin的问题。

1 个答案:

答案 0 :(得分:1)

我认为您想使用oAuth而不是客户端ID。

这是一个例子。

第1步:将用户重定向到instagram登录。

<a href="https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token">Instagram Login</a>

返回时,删除访问令牌,如下所示:

function AccessToken(value) {
    this.value = value;
}

function getInstagramAccessToken() {
    var hash = location.hash.replace('#', '')
    if(hash.indexOf("access_token") >= 0 ){
        instagramToken = new AccessToken(hash)
    }else{
        instagramToken = null;
    }
}

Ste 2:经过身份验证后,按照以下方式拨打电话:

var photoList_Instagram = []
function getInstagramPhotoList(nextPageUrl) {

    var requestUrl = 'https://api.instagram.com/v1/users/self/media/recent' + "?"
    + instagramToken.value

    if(nextPageUrl){
        requestUrl = nextPageUrl;
    }
    $.ajax({
        type : "GET",
        dataType : "jsonp",
        url : requestUrl,
        success : function(response) {
            response.data.forEach(function(photo){
                photoList_Instagram.push(photo);
            })
            if (response.pagination.next_url) {

                getInstagramPhotoList(response.pagination.next_url)

            } else {
                //your code here
                foo(photoList_Instagram);
            }
        }
    });