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

Оновлення в червні-20-2019, API зараз відкритий. Аутентифікація не потрібна.

Оновлення в грудні-11-2018, мені потрібно було підтвердити, що ця кінцева точка все ще працює. Вам потрібно увійти до того, як надсилати запит на цей сайт, оскільки він більше не є публічним кінцевим пунктом. Крок входу також простий. Це моя демонстрація: https://youtu.be/ec5QhwM6fvc


Оновлення у квітні-17-2018, схоже, що ця кінцева точка все ще працює (але її вже не є публічною кінцевою точкою), ви повинні надіслати запит із додатковою інформацією до цієї кінцевої точки. (Натисніть F12, щоб відкрити панель інструментів для розробників, потім натисніть на вкладку Network і відстежте запит.)

Вибачте, бо я занадто зайнятий. Сподіваюся, ця інформація допоможе вам, хлопці. Хм, сміливо дай мені голосування, якщо хочеш.


Оновлення в квітні 12-2018, cameronjonesweb повідомив, що ця кінцева точка більше не працює. Коли він / вона намагається отримати доступ до цієї кінцевої точки, повертається код статусу 403.



1
Як ти його знайшов?
nilfalse

6
Коли ви відкриєте розробник Windows свого веб-переглядача та відкриєте вкладку Мережа, ви можете побачити запит на цю URL-адресу.
Thinh Vu

3
шукайте ідентифікатор власника.
Гулок

1
Це круто! приємна знахідка. будемо сподіватися, що це не стане обмеженою.
деб.

2
На жаль, це не працює, якщо у вас немає конкретного ідентифікатора користувача, який ви знаєте. Спосіб інстаграм перевіряє, чи є його дійсним запит файлом cookie, поданим у заголовку. Якщо user_id існує у файлі cookie, це вважатиметься дійсним запитом. Перевірте властивість файлів cookie у заголовку запиту, коли ви переходите до
вказаної

39

Введіть цю URL-адресу у свій веб-переглядач із іменем користувачів, яке ви хочете знайти, та вашим маркером доступу

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

16
Сумно; це недоліки :( Ми виявили, що якщо ви просимо оновити цей URL-адрес, ви можете випадковим чином отримати інших користувачів, ім’я користувача яких починається з шуканого імені користувача. Наприклад, якщо ви шукаєте "fred1", але є також "fred123 ", ви отримаєте випадкові результати! Повідомляється в instagram; чекаю на відповідь :(
Danny Tuppeny

@frosty Я вважаю це досить ненадійним - ви мали кращі результати?
sambecker

Це не працює, оскільки для цього вам потрібен дозвіл "public_content".
desloovere_j

@DannyTuppeny Ви коли-небудь чули від Instagram?
Черга

@Queue Нічого корисного, лише сміття. Врешті-решт ми відмовилися, і оскільки їхні зміни в червні все-таки зруйнували нашу інтеграцію, ми просто вириваємо їх із програми.
Danny Tuppeny

18

Більшість методів застаріли з червня, 1/2016 зміни в api

Нижче працював для мене,

  • отримати доступ до instagram у вашому браузері, наприклад, chrome, safari або firefox.
  • Запустіть інструменти для розробників, перейдіть до консольного варіанту.
  • у командному рядку введіть нижче команду та натисніть клавішу Enter:

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

Якщо вам пощастить, ви отримаєте з першої спроби, якщо ні, наберіться терпіння, оновіть сторінку та спробуйте ще раз. продовжуйте робити, поки ви не побачите ідентифікатор користувача. Удачі!!



18

Легко отримати ідентифікатор USER та дані користувача

https://api.instagram.com/v1/users/search?q= [ ІМЕНТ КОРИСТУВАЧА] & client_id = [ВАШ Ідентифікатор клієнта APP]

Наприклад:

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

Результат:

{"meta": {"код": 200}, "data": [{"ім'я користувача": "zeeshanakhter2009", "bio": "http://about.me/zeeshanakhter", "website": "http: //zeeshanakhter.com","profile_picture":"http://images.ak.instagram.com/profiles/profile_202090411_75sq_1377878261.jpg","full_name":"Zeeshan Akhter "," id ":" 202090411 "}]}


1
Найпростіший спосіб. І немає необхідності в маркері доступу! Любіть це :)
Може Вурал

1
я також писати допомоги тему на тому , що в Java ви можете побачити в деталях latest-tutorial.com/2014/01/27/get-instagram-media-comments
Zeeshan Ахтер

6
Сумно; ця помилка :( Ми виявили, що якщо ви переспівуєте цей URL, ви можете випадковим чином отримати інших користувачів, ім’я користувача яких починається з шуканого імені користувача. Наприклад, якщо ви шукаєте "fred1", але також є "fred123 ", ви отримаєте випадкові результати! Повідомляється в instagram; чекаю на відповідь :(
Danny Tuppeny

1
Я погоджуюся з Денні, цей метод не завжди працює.
ок

2
Більше не працює, оскільки Instagram видалив всю підтримку client_id станом на 1 червня 2016 року
Malcolm Box

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 .

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

Оновлення : Додано вихідний код для порту до Ruby on Rails .


4
Інструмент для отримання ідентифікаторів Instagram за посиланням імені користувача не працює. Будь ласка, оновіть його.
Нішант Навархеде

@JaydeepJadav навіть не так, як "будь ласка"? Вихідний код розміщено в GitHub - ви більше ніж ласкаво просимо відкрити запит на виклик.
zeantsoi

5

Я спробував усі вищезгадані рішення і жодне не працює. Я думаю, Instagram прискорив їх зміни. Проте я спробував метод консолі браузера і трохи пограв і знайшов цю команду, яка дала мені ідентифікатор користувача.

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

Ви просто завітаєте на сторінку профілю і введіть цю команду в консоль. Вам може знадобитися оновити сторінку, щоб це працювало. (Мені довелося опублікувати це як відповідь через низьку репутацію)


5

Робоче рішення без маркера доступу станом на жовтень-14-2018:

Шукайте ім’я користувача:

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

Приклад:

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

Це пошуковий запит. Знайдіть точно відповідні записи у відповіді та отримайте ідентифікатор користувача від запису.


коротка та найкраща відповідь, але якщо ім’я користувача не знайдено, воно покаже відповідні результати.
sanjeet bisht

4

Ви повинні використовувати Instagrams APIдля перетворення usernameTo id.

Якщо я правильно пам'ятаю, ви використовуєте users/searchдля пошуку імені користувача та отримання ідентифікатора звідти


Чи можете ви сказати мені метод, який робить це !?
Мухаммад Реда

робить що? пошук досягається за запитом API users/search, тоді ви отримуєте idта використовуєте його в будь-якому
бажанні

4
Сумно; ця помилка :( Ми виявили, що якщо ви переспівуєте цей URL, ви можете випадковим чином отримати інших користувачів, ім’я користувача яких починається з шуканого імені користувача. Наприклад, якщо ви шукаєте "fred1", але також є "fred123 ", ви отримаєте випадкові результати! Повідомляється в instagram; чекаю на відповідь :(
Danny Tuppeny

замініть ім'я користувача на фактичне ім'я користувача за посиланням нижче api.instagram.com/v1/users/…
Chhatrapati Sharma

3

щоб отримати свій ідентифікатор, зробіть аутентифікований запит до users/self/feedкінцевої точки API API . відповідь міститиме, серед інших даних, ім’я користувача, а також ідентифікатор користувача.


3

Більшість цих відповідей є недійсними після змін API 6.06.2016 . Краще рішення зараз знаходиться тут . Перейдіть на ваш канал на instagram.com, скопіюйте адресу посилання для будь-якого зі своїх зображень та вставте її в текстове поле на цій сторінці. Працював як шарм.



2

Це можна зробити через доступ до apigee.com Instagram API тут, на веб-сайті розробника Instagram. Після входу натисніть на виклик API "/ користувачів / пошук". Звідти ви можете шукати будь-яке ім’я користувача та отримати його ідентифікатор.

{
"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


3
Сумно; Використовуючи користувачів / пошук, це недосконало :( Ми виявили, що якщо ви перебуваєте, оновлюючи цю URL-адресу, ви можете випадковим чином отримати інших користувачів, ім’я користувача яких починається з шуканого імені користувача. Наприклад, якщо ви шукаєте "fred1", але є також "fred123", ви отримаєте випадкові результати! Повідомляється в instagram; чекаю на відповідь :(
Danny Tuppeny

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
        }
}

2

Якщо ви використовуєте неявну автентифікацію, у вас повинна виникнути проблема неможливості їх пошуку user_id

Я знайшов спосіб, наприклад:

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

Ви б зробили роздільний сингл, відокремлений. відзначає маркер доступу та перший елемент


2

Я думаю, що найкращий, найпростіший і безпечний метод - це відкрити свій профіль instagram у браузері, переглянути вихідний код і шукати змінну користувача (ctrl + f "user": {" ) всередині основного коду JavaScript. Ідентифікаційний номер всередині змінної користувача повинен бути своїм ідентифікатором.

Це код, як це виглядало в момент написання цієї відповіді (це може, імовірно, буде змінено в майбутньому):

"user":{"username":"...","profile_picture":"...","id":"..........","full_name":"..."}},

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 (Endpoints користувачів: / користувачів / пошук)

інструкція в 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
Сумно; Використовуючи користувачів / пошук, це недосконало :( Ми виявили, що якщо ви перебуваєте, оновлюючи цю URL-адресу, ви можете випадковим чином отримати інших користувачів, ім’я користувача яких починається з шуканого імені користувача. Наприклад, якщо ви шукаєте "fred1", але є також "fred123", ви отримаєте випадкові результати! Повідомляється в instagram; чекаю на відповідь :(
Danny Tuppeny

2

Ось справді простий веб-сайт, який добре працює для мене:

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

Або ви можете зробити наступне, замінивши ім’я користувача "ім'ям користувача" в Instagram

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

Або ви можете увійти у свій обліковий запис Instagram і скористатися інструментами google dev та переглянути збережені файли cookie. 'ds_user_id' - ваш ідентифікатор користувача

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


Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться. - З огляду
Помилки

@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=/11

ви отримаєте Json Result, що містить загальну інформацію про ваш обліковий запис разом із вашим ідентифікаційним номером користувача

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.