Как определить имя пользователя Instagram из идентификатора пользователя - PullRequest
0 голосов
/ 12 октября 2019

Я работаю над программой, которая должна собирать информацию из общедоступного API Instagram.

Мой код использует конечную точку https://instagram.com/{username}/?__a=1 для получения информации о пользователе и для уникальной идентификации учетных записей Instagram даже после изменения имени. Я сохраняю параметр «id», который всегда остается неизменным.

До этого момента можно было использовать другую конечную точку API Instagram https://i.instagram.com/api/v1/users/{id}/info/, чтобы узнать текущее имя пользователя, подключенное к данной учетной записи, но оно было удалено Instagram несколько дней / недель назад.

Я был бы очень признателен, если бы кто-нибудь знал другой способ получения имени пользователя по идентификатору пользователя, поскольку я не смог ни найти его самостоятельно, ни найти решение кого-либо еще в Интернете.

1 Ответ

2 голосов
/ 23 октября 2019

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!

Должен быть какой-то плагин, который позволит вам менять заголовки для получения результатов через запрос браузера ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...