如何从用户 ID 中找出 Instagram 用户名

问题描述 投票:0回答:2

我正在开发一个程序,需要从公共 Instagram API 中抓取信息。

我的代码使用端点

https://instagram.com/{username}/?__a=1
来获取有关用户的信息,并且为了即使在名称更改后也能唯一标识 Instagram 帐户,我存储了始终保持不变的“id”参数。

到目前为止,可以使用另一个 Instagram API 端点

https://i.instagram.com/api/v1/users/{id}/info/
来找出连接到给定帐户的当前用户名,但几天/几周前它已被 Instagram 删除。

如果有人知道从用户 ID 获取用户名的另一种方法,我将非常感激,因为我自己无法找到,也无法在网上找到其他人的解决方案。

instagram instagram-api instagram-graph-api
2个回答
17
投票

Ig 已更改此端点行为并且已受到保护。不过这里提示的是错误

message

{
"message": "useragent mismatch",
"status": "fail"
}

通过有效的

useragent
您可以跳过这项新的安全检查。让我分享一段Python代码

import requests
def get_user_by_user_id(user_id):
    user = {}
    if user_id:
        base_url = "https://i.instagram.com/api/v1/users/{}/info/"
        #valid user-agent
        headers = {
            'user-agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 105.0.0.11.118 (iPhone11,8; iOS 12_3_1; en_US; en-US; scale=2.00; 828x1792; 165586599)'
        }
        try:
            res       = requests.get(base_url.format(user_id),headers=headers)
            user_info = res.json()
            user      = user_info.get('user',{})
        except Exception as e:
            print("getting user failed, due to '{}'".format(e.message))
    return user

user_id=<your_user_id>
get_user_by_user_id(user_id) #ta-dah!

应该有一些插件允许您更改标头以便通过浏览器请求获取结果...


0
投票

以下作品 端点:“https://www.instagram.com/api/v1/users/web_profile_info/?username=${username}”, 方法:获取, 标题:{ 'referer': 'https://www.instagram.com/${用户名}/', 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/127.0.0.0 Safari/537.36', 'x-ig-app-id': 'x-ig-app-id' }

© www.soinside.com 2019 - 2024. All rights reserved.