Instagram как получить свой идентификатор пользователя из имени пользователя?

125

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

Итак, где я могу найти / получить свой идентификатор пользователя?

Мухаммад Реда
источник
1
Я нашел для этого новый и более быстрый инструмент, см. Codeofaninja.com/tools/find-instagram-user-id
Emkey
Вам также может быть интересно найти имя пользователя по идентификатору пользователя, если кто-то часто меняет имя пользователя. Я добавил ответ, который работает без токена доступа: stackoverflow.com/a/60744028/1176454
baptx

Ответы:

236

Очень поздний ответ, но я думаю, что это лучший ответ на эту тему. Надеюсь, это будет полезно.

Вы можете получить информацию о пользователе, когда будет сделан запрос по указанному ниже URL:

https://www.instagram.com/{username}/?__a=1

Например:

Этот URL-адрес получит всю информацию о пользователе, чье имя - therock.

https://www.instagram.com/therock/?__a=1

Обновление i июнь-20-2019, API теперь общедоступен. Никакой аутентификации не требуется.

Обновление от 11 декабря 2018 г., мне нужно было подтвердить, что эта конечная точка все еще работает. Вам необходимо войти в систему перед отправкой запроса на этот сайт, потому что это больше не общедоступная конечная точка. Шаг входа в систему также прост. Это моя демонстрация: https://youtu.be/ec5QhwM6fvc


Обновление от 17 апреля 2018 г. Похоже, эта конечная точка все еще работает (но это больше не общедоступная конечная точка), вы должны отправить запрос с дополнительной информацией на эту конечную точку. (Нажмите F12, чтобы открыть панель инструментов разработчика, затем щелкните вкладку «Сеть» и проследите запрос.)

Извини, потому что я слишком занят. Надеюсь, эта информация поможет вам, ребята. Хм, не стесняйтесь голосовать против, если хотите.


Обновление от 12 апреля 2018 г., cameronjonesweb сообщило, что эта конечная точка больше не работает. Когда он / она пытается получить доступ к этой конечной точке, возвращается код состояния 403.


Thinh Vu
источник
1
Как ты это нашел?
nilfalse
6
Когда вы открываете Developer Windows своего браузера и открываете вкладку Network, вы можете увидеть запрос на этот URL.
Thinh Vu
3
ищите идентификатор владельца.
Gulok
1
это круто! хорошая находка. Будем надеяться, что это не будет ограничено по скорости.
ded
2
К сожалению, это не сработает, если у вас нет определенного идентификатора пользователя, который вам известен. Инстаграм проверяет правильность запроса с помощью файла cookie, отправленного в заголовке. Если user_id существует в файле cookie, это будет считаться действительным запросом. Проверьте свойство cookie в заголовке запроса при переходе по указанному URL
Kiong
39

Введите этот URL-адрес в своем браузере с именем пользователя, которого вы хотите найти, и своим токеном доступа.

https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]
estherz
источник
16
К сожалению, это ошибочно :( Мы обнаружили, что если вы сидите и обновляете этот URL-адрес, вы можете случайным образом получить других пользователей, чьи имена начинаются с имени пользователя, которое вы искали. Например, если вы ищете «fred1», но есть также «fred123» ", вы получите случайные результаты! Сообщение в инстаграмм;
ждем
@frosty Я считаю это довольно ненадежным - у вас были лучшие результаты?
Sambecker
Это не работает, так как для этого вам нужно разрешение "public_content".
desloovere_j
@DannyTuppeny Вы когда-нибудь получали ответ из Instagram?
Очередь
@Queue Ничего полезного, просто фигня. В конце концов мы сдались, и, поскольку их изменения в июне полностью нарушили нашу интеграцию, мы просто полностью удалили их из нашего приложения.
Дэнни Таппени
18

Большинство методов устарели с июня, изменения API 1/2016

Ниже работал у меня,

  • войдите в Instagram в своем браузере, скажите chrome, safari или firefox.
  • Запустите инструменты разработчика, перейдите к опции консоли.
  • в командной строке введите команду ниже и нажмите Enter:

    window._sharedData.entry_data.ProfilePage[0].user.id
    

Если повезет, получится с первой попытки, если нет, наберитесь терпения, обновите страницу и попробуйте еще раз. продолжайте делать, пока не увидите идентификатор пользователя. Удачи!!

е-общество
источник
1
Вот пример кода для этого решения. github.com/vhpoet/liltools/blob/master/index.js#L13-L28 Хостинг: liltools.com/instagram
Ваге Оганесян
18

Легко получить идентификатор пользователя и данные пользователя

https://api.instagram.com/v1/users/search?q= [ ИМЯ ПОЛЬЗОВАТЕЛЯ] & client_id = [ID клиента ВАШЕГО приложения]

Например:

https://api.instagram.com/v1/users/search?q=zeeshanakhter2009&client_id=enter_your_id

Результат:

{ "Мета": { "код": 200}, "данные": [{ "имя пользователя": "zeeshanakhter2009", "био": "http://about.me/zeeshanakhter", "сайт": "HTTP: //zeeshanakhter.com","profile_picture":"http://images.ak.instagram.com/profiles/profile_202090411_75sq_1377878261.jpg","full_name":"Zeeshan Akhter "," id ":" 202090411 "}]}

Зишан Ахтер
источник
1
Самый простой способ. И токен доступа не нужен! Обожаю это :)
Can Vural
1
Я также пишу вспомогательную тему на java, которую вы можете увидеть в деталях latest-tutorial.com/2014/01/27/get-instagram-media-comments
Zeeshan Akhter
6
К сожалению, это ошибочно :( Мы обнаружили, что если вы сидите и обновляете этот URL-адрес, вы можете случайным образом получить других пользователей, чьи имена начинаются с имени пользователя, которое вы искали. Например, если вы ищете «fred1», но есть также «fred123» ", вы получите случайные результаты! Сообщение в инстаграмм;
ждем
1
Я согласен с Дэнни, этот метод не всегда работает.
около
2
Больше не работает, так как Instagram удалил всю поддержку client_id с 1 июня 2016 года
Малкольм Бокс
14

Вместо использования API можно изучить страницу пользователя Instagram, чтобы получить идентификатор. Пример кода на PHP:

$html = file_get_contents("http://instagram.com/<username>");
$doc = new DOMDocument();
$doc->loadHTML($html);

$xpath = new DOMXPath($doc);
$js = $xpath->query('//body/script[@type="text/javascript"]')->item(1)->nodeValue;

$start = strpos($js, '{');
$end = strrpos($js, ';');
$json = substr($js, $start, $end - $start);

$data = json_decode($json, true);
$data = $data["entry_data"]["UserProfile"][0];
# The "userMedia" entry of $data now has the same structure as the "data" field
# in Instagram API responses to user endpoints queries

echo $data["user"]["id"];

Конечно, этот код необходимо адаптировать, если Instagram изменит формат страницы.

Персиваль Улисс
источник
4
Не использовать API кажется плохой идеей
472084
2
Как упоминается в ответе Thinh Vu, вы можете добавить, ?__a=1чтобы получить только JSON в window._sharedDataобъекте, чтобы вы могли сделать что-то вроде curl https://www.instagram.com/username/?__a=1|jq -r .user.id.
нисетама
7

В настоящее время нет прямого API Instagram для получения идентификатора пользователя из имени пользователя. Вам нужно вызвать GET / users / search API, а затем выполнить итерацию результатов и проверить, usernameсовпадает ли значение поля с вашим именем пользователя или нет, затем вы берете файл id.

ноль
источник
6

Я написал этот инструмент для получения идентификаторов Instagram по имени пользователя: Instagram User ID Lookup .

Он использует библиотеку python-instagram для доступа к API и включает ссылку на исходный код (написанный на Django), который иллюстрирует различные реализации Instagram API.

Обновление : добавлен исходный код для переноса на Ruby on Rails .

zeantsoi
источник
4
Инструмент для получения идентификаторов Instagram по ссылке имени пользователя не работает. Пожалуйста, обновите его.
Nishant Nawarkhede
@JaydeepJadav даже не "пожалуйста"? Исходный код находится на GitHub - вы можете открывать пул-реквест.
зеанцой
6

Рабочее решение без токена доступа по состоянию на 14 октября 2018 г .:

Найдите имя пользователя:

https://www.instagram.com/web/search/topsearch/?query=<username>

Пример:

https://www.instagram.com/web/search/topsearch/?query=therock

Это поисковый запрос. Найдите в ответе точно совпадающую запись и получите идентификатор пользователя из записи.

lashgar
источник
короткий и лучший ответ, но если имя пользователя не найдено, будут показаны соответствующие результаты.
sanjeet bisht
как насчет ограничения скорости?
Арнав Сингх
5

Я пробовал все вышеупомянутые решения, и ни одно из них не работает. Думаю, Instagram ускорил их изменения. Однако я попробовал использовать метод консоли браузера, немного поигрался и нашел эту команду, которая дала мне идентификатор пользователя.

window._sharedData.entry_data.ProfilePage[0].graphql.user.id

Вы просто заходите на страницу профиля и вводите эту команду в консоли. Однако вам может потребоваться обновить страницу, чтобы это работало. (Мне пришлось опубликовать это как ответ из-за моей низкой репутации)

ionpan
источник
4

Вам нужно использовать Instagrams APIдля преобразования вашего usernameв id.

Если я правильно помню, вы используете users/searchдля поиска имени пользователя и получения идентификатора оттуда

mlishn
источник
Можете ли вы сказать мне метод, который это делает !?
Мухаммад Реда
делает что? поиск осуществляется с помощью запроса API users/search, затем вы получаете его idи используете в чем
хотите
4
К сожалению, это ошибочно :( Мы обнаружили, что если вы сидите и обновляете этот URL-адрес, вы можете случайным образом получить других пользователей, чьи имена начинаются с имени пользователя, которое вы искали. Например, если вы ищете «fred1», но есть также «fred123» ", вы получите случайные результаты! Сообщение в инстаграмм;
ждем
замените имя пользователя фактическим именем пользователя в ссылке ниже api.instagram.com/v1/users/…
Чхатрапати Шарма
3

чтобы получить свой идентификатор, сделайте аутентифицированный запрос к users/self/feedконечной точке Instagram API . ответ будет содержать, среди других данных, имя пользователя, а также идентификатор пользователя.

wehal3001
источник
3

Большинство этих ответов недействительны после изменений в Instagram API 01.06.2016 . Лучшее решение сейчас здесь . Перейдите в свою ленту на instagram.com, скопируйте адрес ссылки для любого из своих изображений и вставьте его в текстовое поле на этой странице. Работал как шарм.

Southerneer
источник
2

Перейдите в консоль api и скопируйте ссылку https://api.instagram.com/v1/users/self в текстовое поле и выполните аутентификацию, используя свой идентификатор и пароль Instagram, вы получите свой идентификатор в ответ

sharmaravi
источник
2

Это можно сделать через apigee.com доступ к API Instagram здесь, на сайте разработчика Instagram. После входа в систему щелкните вызов API "/ users / search". Оттуда вы можете найти любое имя пользователя и получить его идентификатор.

{
"data": [{
    "username": "jack",
    "first_name": "Jack",
    "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_66_75sq.jpg",
    "id": "66",
    "last_name": "Dorsey"
},
{
    "username": "sammyjack",
    "first_name": "Sammy",
    "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_29648_75sq_1294520029.jpg",
    "id": "29648",
    "last_name": "Jack"
},
{
    "username": "jacktiddy",
    "first_name": "Jack",
    "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_13096_75sq_1286441317.jpg",
    "id": "13096",
    "last_name": "Tiddy"
}]}


Если у вас уже есть код доступа, это также можно сделать так: https://api.instagram.com/v1/users/search?q=USERNAME&access_token=ACCESS_TOKEN

preynolds
источник
3
К сожалению, использование users / search ошибочно :( Мы обнаружили, что если вы обновите этот URL, вы можете случайным образом получить других пользователей, чье имя начинается с имени пользователя, которое вы искали. Например, если вы ищете "fred1", но есть также "fred123", вы получите случайные результаты! Сообщено в Instagram; ожидая ответа :(
Дэнни Таппени,
2
Это не недостаток, а функциональность. Это API поиска , то есть он работает как поле поиска в приложении Instagram. Правильный способ получить идентификатор пользователя для имени пользователя - запросить эту конечную точку поиска, а затем перебрать возвращенные объекты и проверить точное совпадение имени пользователя.
Джон Дориан
1
Проголосовали за оба, но, как разработчики api, можем ли мы, пожалуйста, согласиться на создание конечной точки поиска пользователей, чтобы избежать этого, предложение только поиска действительно раздражает
шутки
2

Несмотря на то, что нет в списке на странице API док больше, я нашел нить , которая указывает , что вы можете использовать selfвместо user-idдля users/{user-id}конечной точки и она будет возвращать данные в настоящее время аутентифицированного пользователя.

Таким образом, users/selfэто то же самое, что и явный вызов, users/{some-user-id}и он содержит идентификатор пользователя как часть полезной нагрузки. После аутентификации просто позвоните, users/selfи результат будет включать идентификатор пользователя, прошедшего аутентификацию, например:

{
    "data": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
        "bio": "This is my bio",
        "website": "http://snoopdogg.com",
        "counts": {
            "media": 1320,
            "follows": 420,
            "followed_by": 3410
        }
}
markquezada
источник
2

Если вы используете неявную аутентификацию, то проблема в том, что вы не можете найти user_id

Я нашел способ например:

Access Token = 1506417331.18b98f6.8a00c0d293624ded801d5c723a25d3ec the User id is 1506417331

Вы бы сделали сплит-сингл, разделенный на. obtenies к токену доступа и первому элементу

Диего Мачака
источник
2

Я думаю, что лучший, самый простой и безопасный метод - открыть свой профиль Instagram в браузере, просмотреть исходный код и найти пользовательскую переменную (ctrl + f "user": {" ) внутри основного кода javascript. Идентификационный номер внутри пользовательской переменной должен будь твоим идентификатором.

Вот код, как он выглядел в момент написания этого ответа (он может и, вероятно, будет изменен в будущем):

"user":{"username":"...","profile_picture":"...","id":"..........","full_name":"..."}},
Bajlo
источник
2

Вот как вы можете получить свой идентификатор пользователя из имени пользователя:

$url = "https://api.instagram.com/v1/users/search?q=[username]&access_token=[your_token]";
$obj = json_decode(@file_get_contents($url));
echo $obj->data[0]->id;
Незар Фадл
источник
2

Вы можете сделать это с помощью Instagram API (конечные точки пользователя: / users / search)

инструкции на php:

function Request($url) {

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_HEADER, 0);  

    $result = curl_exec($ch);

    curl_close($ch);

    return $result;

}

function GetUserID($username, $access_token) {

    $url = "https://api.instagram.com/v1/users/search?q=" . $username . "&access_token=" . $access_token;

    if($result = json_decode(Request($url), true)) {

        return $result['data'][0]['id'];

    }

}

// example:
echo GetUserID('rathienth', $access_token);
Ратиент Баскаран
источник
3
К сожалению, использование users / search ошибочно :( Мы обнаружили, что если вы обновите этот URL, вы можете случайным образом получить других пользователей, чье имя начинается с имени пользователя, которое вы искали. Например, если вы ищете "fred1", но есть также "fred123", вы получите случайные результаты! Сообщено в Instagram; ожидая ответа :(
Дэнни Таппени,
2

Вот действительно простой веб-сайт, который мне подходит:

http://www.instaid.co.uk/

Или вы можете сделать следующее, заменив «имя пользователя» своим именем пользователя в Instagram.

https://www.instagram.com/username/?__a=1

Или вы можете войти в свою учетную запись Instagram и использовать инструменты разработчика Google и просмотреть файлы cookie, которые были сохранены. 'ds_user_id' - ваш идентификатор пользователя

введите описание изображения здесь

BenEgan1991
источник
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - Из
Bugs
@Bugs Я добавил более подробный ответ. Я просто пытаюсь внести свой вклад в сообщество stackoverflow.
BenEgan1991,
1
https://api.instagram.com/v1/users/search?q="[USERNAME]"&access_token=[ACCESS TOKEN]

Обратите внимание на кавычки.

Это не всегда возвращает действительный результат, но чаще, чем результат без кавычек:

https://api.instagram.com/v1/users/search?q="self"&count=1&access_token=[ACCESS TOKEN] 

возвращает пользователя self (id: 311176867)

https://api.instagram.com/v1/users/search?q=self&count=1&access_token=[ACCESS TOKEN]

возвращает пользователя super_selfie (id: 1422944651)

Ион Базан
источник
1

Рабочий раствор ~ 2018 г.

Я обнаружил, что при наличии токена доступа вы можете выполнить в браузере следующий запрос:

https://api.instagram.com/v1/users/self?access_token=[VALUE]

Фактически, токен доступа содержит идентификатор пользователя (первый сегмент токена):

<user-id>.1677aaa.aaa042540a2345d29d11110545e2499

Вы можете получить токен доступа с помощью этого инструмента, предоставленного Pixel Union .

Аллан Сиднейский
источник
0

Сначала создайте приложение в Instagram и получите идентификатор клиента для своего приложения.

http://instagram.com/developer/

Теперь просто скопируйте вставку, следующий за URL-адресом, в окно браузера, заменив свое имя пользователя и идентификатор клиента https://api.instagram.com/v1/users/search?q=[Your-usernamepting&client_id=[Your-Client-Id]

вы получите результат Json, содержащий общую информацию о вашей учетной записи вместе с вашим числовым идентификатором пользователя

Акшай Хале
источник