我如何使用新的 api 权限显示简单的 Instagram 提要
How can i show a simple instagram feed with the new api permissions
我正在尝试在 django cms 上设置一个 instagram 插件,以通过插件中设置的用户名在主页上显示我最近的图像。看来您不能再简单地从 instagram 获取 public 内容。这是我在沙盒帐户中使用的当前方法。
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()
上面的代码从插件模型中获取用户名,并向 instagram api 发出获取请求以获取该用户(我听说此方法并不总是显示正确的用户,因为它只是从列表中搜索并获取第一个用户)。
这是使用 instagram api 和 python 的正确方法吗?我打算使用 python-instagram,但不再支持它。我能想到的唯一其他方法是在网站上对用户进行身份验证并使用他们的访问令牌,这对于我需要它的目的来说似乎很愚蠢。
编辑:
删除用户名字段并添加 access_token 会是更好的方法吗?然后使用“/users/self/media/recent”并排除按用户名搜索用户的查询。
是的,第一个结果并不总是匹配的,你循环了所有的搜索结果并将用户名与你搜索到的用户名进行比较,然后得到 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
}
我正在尝试在 django cms 上设置一个 instagram 插件,以通过插件中设置的用户名在主页上显示我最近的图像。看来您不能再简单地从 instagram 获取 public 内容。这是我在沙盒帐户中使用的当前方法。
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()
上面的代码从插件模型中获取用户名,并向 instagram api 发出获取请求以获取该用户(我听说此方法并不总是显示正确的用户,因为它只是从列表中搜索并获取第一个用户)。
这是使用 instagram api 和 python 的正确方法吗?我打算使用 python-instagram,但不再支持它。我能想到的唯一其他方法是在网站上对用户进行身份验证并使用他们的访问令牌,这对于我需要它的目的来说似乎很愚蠢。
编辑: 删除用户名字段并添加 access_token 会是更好的方法吗?然后使用“/users/self/media/recent”并排除按用户名搜索用户的查询。
是的,第一个结果并不总是匹配的,你循环了所有的搜索结果并将用户名与你搜索到的用户名进行比较,然后得到 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
}