我正在尝试找到一种从Python中的用户名ID获取Instagram用户名的方法。 到目前为止我发现的是:
https://api.instagram.com/v1/users/[USER-ID]?access_token=[YOUR-ACCESS-TOKEN]
我有一个令牌号码,但它仅适用于添加到沙箱的用户。对于其他用户,我收到以下错误:
{"meta": {"code": 400, "error_type": "APINotFoundError", "error_message": "this user does not exist"}}
到目前为止,我正在寻找解决方案几个小时没有运气。 有没有办法在不使用令牌的情况下达到相同的结果?
非常感谢!
答案 0 :(得分:4)
将浏览器指向https://i.instagram.com/api/v1/users/USERID/info/(用户ID替换USERID)。它返回一个JSON,其中字段user.username是该用户的用户名。安装了curl和jq后,此shell oneliner将直接返回用户名:
import instaloader
L = instaloader.Instaloader()
profile = instaloader.Profile.from_id(L.context, ID)
print(profile.username)
或者,Instaloader package提供了一种方便的方式来获取给定ID的用户名,而无需使用官方的Instagram API。
owner.username
它的工作原理是查询其中一个配置文件的帖子(只需要配置文件的ID),获取该帖子的元数据(instagram.com/p/SHORTCODE),然后返回该帖子的1.8
值。
答案 1 :(得分:3)
在我的情况下,我从tagFeed获取数据,所以我有图片代码。如果您有任何用户帖子的图片代码,那么您可以获得这样的用户名
https://www.instagram.com/p/picCODE/?__a=1
example: https://www.instagram.com/p/BaGce-NlMg7/?__a=1
它将返回一个带有所有者的JSON - 用户名
答案 2 :(得分:0)
不,不幸的是你不能。您需要具有public_content
权限的令牌,为此,您需要有一个实时应用(不在沙盒中)。