2016-07-27 38 views
1

我正在试图在django cms上设置一个instagram插件,以通过插件中设置的用户名在主页上显示我最近的图像。看来你不能再简单地从instagram获取公开内容。这是我用我的沙箱帐户使用的当前方法。我如何使用新的api权限显示简单的instagram提要

user_request = requests.get("https://api.instagram.com/v1/users/search?q=" + str(instance.username) + "&access_token=" + settings.INSTAGRAM_ACCESS_TOKEN) 
user_id = user_request.json().values()[1][0]["id"] 
r = requests.get("https://api.instagram.com/v1/users/"+ user_id +"/media/recent/?access_token=" + settings.INSTAGRAM_ACCESS_TOKEN + "&count=" + str(instance.limit)) 
recent_media = r.json() 

上面的代码从插件模式的用户名和发出GET请求到Instagram的API来获取用户(我听说过这种方法并不总是显示正确的用户为它只是搜索和从列表中获取第一个用户)。

这是正确的方式来使用instagram api和python,我打算使用python-instagram,但不再支持。我唯一能想到的方法是在网站上对用户进行身份验证,并使用他们的访问令牌,这看起来很愚蠢,因为我需要它。

编辑: 删除用户名字段并添加access_token是一种更好的方法吗?然后使用“/ users/self/media/recent”并排除查询以通过用户名搜索用户。

回答

1

是,以第一名的成绩并不总是在比赛,你必须通过所有的搜索结果中环和用户名比较您所查找的用户名,然后拿到ID

事情是这样的:

var user_id = 0; 
user_request.json().values()["data"].forEach(function(user){ 
    if(user.username == str(instance.username)){ 
     user_id = user["id"] 
    } 
}); 
if(user_id){ 
    // make api call 
} else { 
    // user not found 
} 
+0

似乎很奇怪没有一个get_user方法,但嗯,我会尝试在Python中实现这一点,看看它如何去,你认为这会比替换用访问令牌的用户名好吗?我想它比让用户抓取访问令牌更好的可用性。 –

+0

第一行将与你的相同:'user_request = requests.get(“https://api.instagram.com/v1/users/search?q=”+ str(instance.username)+“&access_token =”+ settings.INSTAGRAM_ACCESS_TOKEN)' – krisrak

+0

是的,我得到它的用户名比较认为可能有更好的方式做这件事,但这是有益的谢谢你:) –

相关问题