Instagram, jak uzyskać identyfikator użytkownika z nazwy użytkownika?
125
Jestem w trakcie osadzania mojego źródła obrazu w mojej witrynie internetowej za pomocą JSON, adres URL wymaga mojego identyfikatora użytkownika, aby móc pobrać ten kanał.
Więc gdzie mogę znaleźć / pobrać mój identyfikator użytkownika?
Możesz być także zainteresowany znalezieniem nazwy użytkownika z identyfikatora użytkownika, na wypadek, gdyby ktoś często zmieniał nazwę użytkownika. Dodałem odpowiedź, która działa bez tokena dostępu: stackoverflow.com/a/60744028/1176454
baptx
Odpowiedzi:
236
Bardzo późna odpowiedź, ale myślę, że to najlepsza odpowiedź na ten temat. Mam nadzieję, że to jest przydatne.
Możesz uzyskać informacje o użytkowniku, gdy zostanie wysłane żądanie, korzystając z poniższego adresu URL:
https://www.instagram.com/{username}/?__a=1
Na przykład:
Ten adres URL zawiera wszystkie informacje o użytkowniku, którego nazwa użytkownika to therock
https://www.instagram.com/therock/?__a=1
Aktualizacja i czerwiec-20-2019, API jest teraz publiczne. Nie jest wymagane uwierzytelnienie.
Aktualizacja w grudniu-11-2018, musiałem potwierdzić, że ten punkt końcowy nadal działa. Musisz się zalogować przed wysłaniem żądania do tej witryny, ponieważ nie jest to już publiczny punkt końcowy. Krok logowania jest również łatwy. To jest moje demo:
https://youtu.be/ec5QhwM6fvc
Aktualizacja z kwietnia 17-2018, wygląda na to, że ten punkt końcowy nadal działa (ale nie jest już publiczny punkt końcowy), musisz wysłać żądanie z dodatkowymi informacjami do tego punktu końcowego. (Naciśnij klawisz F12, aby otworzyć pasek narzędzi programisty, a następnie kliknij kartę Sieć i prześledź żądanie).
Przepraszam, bo jestem zbyt zajęty. Mam nadzieję, że te informacje wam pomogą. Hmm, jeśli chcesz, możesz mi oddać głos przeciw.
Aktualizacja z 12 kwietnia 2018 r., Cameronjonesweb powiedział, że ten punkt końcowy już nie działa. Kiedy próbuje uzyskać dostęp do tego punktu końcowego, zwraca kod stanu 403.
Po otwarciu okien deweloperskich w przeglądarce i otwarciu karty Sieć można zobaczyć żądanie do tego adresu URL.
Thinh Vu
3
poszukaj identyfikatora właściciela.
Gulok
1
to jest niesamowite! niezłe znalezisko. miejmy nadzieję, że nie zostanie to ograniczone.
zadebiutował
2
Niestety to nie działa, jeśli nie masz określonego identyfikatora użytkownika, który znasz. Sposób, w jaki Instagram sprawdza, czy jest to prawidłowe żądanie, jest przez plik cookie przesłany w nagłówku. Jeśli user_id istnieje w pliku cookie proeprty, zostanie uznane za prawidłowe żądanie. Sprawdź właściwość pliku cookie w nagłówku żądania po przejściu do pokazanego adresu URL
Kiong,
39
Wprowadź ten adres URL w przeglądarce, podając nazwę użytkownika, którego chcesz znaleźć, i swój token dostępu
Niestety; to jest błąd :( Odkryliśmy, że jeśli siedzisz i odświeżasz ten adres URL, możesz losowo pobrać innych użytkowników, których nazwa użytkownika zaczyna się od wyszukiwanej nazwy użytkownika. Np. jeśli szukasz „fred1”, ale jest też „fred123 ", otrzymasz losowe wyniki! Zgłoszone na instagramie; oczekiwanie na odpowiedź :(
Danny Tuppeny
@frosty Uważam to za mało wiarygodne - miałeś lepsze wyniki?
sambecker
To nie działa, ponieważ potrzebujesz do tego uprawnienia „public_content”.
desloovere_j
@DannyTuppeny Czy kiedykolwiek usłyszałeś odpowiedź z Instagrama?
Kolejka
@Queue Nic przydatnego, tylko śmieci. W końcu zrezygnowaliśmy, a ponieważ ich zmiany w czerwcu, które i tak całkowicie zepsuły naszą integrację, po prostu całkowicie je wyrywamy z naszej aplikacji.
Danny Tuppeny
18
Większość metod jest przestarzała od czerwca 1/2016 zmian w API
Poniżej pracował dla mnie,
dostęp do Instagrama w przeglądarce, na przykład chrome, safari lub firefox.
Uruchom narzędzia programistyczne, przejdź do opcji konsoli.
w wierszu polecenia wprowadź poniższe polecenie i naciśnij enter:
Jeśli masz szczęście, otrzymasz za pierwszym razem, jeśli nie, uzbrój się w cierpliwość, odśwież stronę i spróbuj ponownie. kontynuuj, aż zobaczysz identyfikator użytkownika. Powodzenia!!
Niestety; to jest błąd :( Odkryliśmy, że jeśli siedzisz i odświeżasz ten adres URL, możesz losowo pobrać innych użytkowników, których nazwa użytkownika zaczyna się od wyszukiwanej nazwy użytkownika. Np. jeśli szukasz „fred1”, ale jest też „fred123 ", otrzymasz losowe wyniki! Zgłoszone na instagramie; oczekiwanie na odpowiedź :(
Danny Tuppeny
1
Zgadzam się z Dannym, ta metoda nie zawsze działa.
około
2
Nie działa, ponieważ Instagram usunął całą obsługę client_id od 1 czerwca 2016 r.
Malcolm Box,
14
Zamiast korzystać z API, można sprawdzić stronę użytkownika Instagrama, aby uzyskać identyfikator. Przykładowy kod w PHP:
$html = file_get_contents("http://instagram.com/<username>");
$doc =newDOMDocument();
$doc->loadHTML($html);
$xpath =newDOMXPath($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"];
Oczywiście ten kod należy dostosować, jeśli Instagram zmieni format strony.
Jak wspomina odpowiedź Thinh Vu, możesz dodać, ?__a=1aby uzyskać tylko JSON w window._sharedDataobiekcie, dzięki czemu możesz zrobić coś podobnego curl https://www.instagram.com/username/?__a=1|jq -r .user.id.
nisetama
7
Obecnie nie ma bezpośredniego interfejsu API Instagrama do pobierania identyfikatora użytkownika z nazwy użytkownika. Musisz wywołać GET / users / search API, a następnie powtórzyć wyniki i sprawdzić, czy usernamewartość pola jest równa twojej nazwie użytkownika, czy nie, a następnie pobierasz plik id.
Wykorzystuje bibliotekę python-instagram, aby uzyskać dostęp do API i zawiera link do kodu źródłowego (napisanego w Django), który ilustruje różne implementacje API Instagrama.
Narzędzie do pobierania identyfikatorów Instagrama za pomocą linku do nazwy użytkownika nie działa. Zaktualizuj go.
Nishant Nawarkhede
@JaydeepJadav nawet nie tak bardzo jak „proszę”? Kod źródłowy znajduje się w GitHub - zapraszamy do otwarcia żądania ściągnięcia.
zeantsoi
5
Wypróbowałem wszystkie powyższe rozwiązania i żadne nie działa. Myślę, że Instagram przyspieszył ich zmiany. Spróbowałem jednak metody konsoli przeglądarki i trochę się pobawiłem i znalazłem to polecenie, które dało mi identyfikator użytkownika.
Po prostu odwiedzasz stronę profilu i wpisujesz to polecenie w konsoli. Aby to zadziałało, może być konieczne odświeżenie strony. (Musiałem opublikować to jako odpowiedź z powodu mojej niskiej reputacji)
robi co? wyszukiwanie odbywa się za pomocą żądania API users/search, a następnie dostajesz idi używasz go w czymkolwiek chcesz
mlishn
4
Niestety; to jest błąd :( Odkryliśmy, że jeśli siedzisz i odświeżasz ten adres URL, możesz losowo pobrać innych użytkowników, których nazwa użytkownika zaczyna się od wyszukiwanej nazwy użytkownika. Np. jeśli szukasz „fred1”, ale jest też „fred123 ", otrzymasz losowe wyniki! Zgłoszone na instagramie; oczekiwanie na odpowiedź :(
aby uzyskać swój identyfikator, wyślij uwierzytelnione żądanie do users/self/feedpunktu końcowego interfejsu API Instagrama . odpowiedź będzie zawierała między innymi nazwę użytkownika oraz identyfikator użytkownika.
Większość z tych odpowiedzi jest nieważna po zmianach interfejsu API Instagrama 6/1/2016 . Najlepsze rozwiązanie jest teraz tutaj . Przejdź do swojego kanału na instagram.com, skopiuj adres linku do dowolnego zdjęcia i wklej go w polu tekstowym na tej stronie. Działał jak urok.
Przejdź do konsoli API i skopiuj link https://api.instagram.com/v1/users/self w polu tekstowym i uwierzytelnij się za pomocą swojego identyfikatora Instagram i hasła, otrzymasz w odpowiedzi swój identyfikator
Można to zrobić poprzez dostęp do API Instagrama apigee.com tutaj, na stronie programistów Instagrama. Po zalogowaniu się kliknij wywołanie API „/ users / search”. Stamtąd możesz przeszukać dowolną nazwę użytkownika i odzyskać jej identyfikator.
Niestety; używanie użytkowników / wyszukiwania jest błędne :( Odkryliśmy, że jeśli siedzisz i odświeżasz ten adres URL, możesz losowo pozyskać innych użytkowników, których nazwa użytkownika zaczyna się od wyszukiwanej nazwy użytkownika. Np. jeśli szukasz „fred1”, ale jest także „fred123”, otrzymasz losowe wyniki! Zgłoszone na instagramie; oczekiwanie na odpowiedź :(
Danny Tuppeny
2
To nie wada - w rzeczywistości jest to funkcjonalność. Jest to interfejs wyszukiwania , co oznacza, że działa jak pole wyszukiwania w aplikacji Instagram. Właściwym sposobem pobrania identyfikatora użytkownika dla nazwy użytkownika jest wysłanie zapytania do tego punktu końcowego wyszukiwania, a następnie iteracja po zwróconych obiektach i sprawdzenie, czy nazwa użytkownika jest dokładnie zgodna.
John Dorian
1
Upvoted zarówno ale jak deweloperzy API możemy Zaakceptuj, aby utworzyć punkt końcowy odnośnika użytkownik tego uniknąć, oferując tylko przeszukiwanie jest naprawdę irytujące
Czy mogę wiedzieć, jaki jest limit kursu na jelled.com?
Aminah Nuraini
2
Chociaż to nie jest wymieniony na stronie API doc już znalazłem wątku , który wspomina, że można użyć selfzamiast user-iddo users/{user-id}punktu końcowego i będzie to powrót informacje o aktualnie uwierzytelnionego użytkownika.
Tak więc users/selfjest tym samym, co jawne wywołanie users/{some-user-id}i zawiera identyfikator użytkownika jako część ładunku. Po uwierzytelnieniu po prostu zadzwoń do, users/selfa wynik będzie zawierał identyfikator aktualnie uwierzytelnionego użytkownika, na przykład:
Myślę, że najlepszą, najprostszą i najbezpieczniejszą metodą jest otwarcie profilu na Instagramie w przeglądarce, wyświetlenie kodu źródłowego i wyszukanie zmiennej użytkownika (ctrl + f "user": {" ) w głównym kodzie javascript. Numer identyfikacyjny w zmiennej użytkownika powinien być twoim identyfikatorem.
Oto kod jak wyglądał w momencie pisania tej odpowiedzi (może i prawdopodobnie zostanie w przyszłości zmieniony):
Niestety; używanie użytkowników / wyszukiwania jest błędne :( Odkryliśmy, że jeśli siedzisz i odświeżasz ten adres URL, możesz losowo pozyskać innych użytkowników, których nazwa użytkownika zaczyna się od wyszukiwanej nazwy użytkownika. Np. jeśli szukasz „fred1”, ale jest także „fred123”, otrzymasz losowe wyniki! Zgłoszone na instagramie; oczekiwanie na odpowiedź :(
Danny Tuppeny
2
Oto naprawdę łatwa witryna, która dobrze mi pasuje:
Możesz też zalogować się na swoje konto na Instagramie i skorzystać z narzędzi deweloperskich Google i przejrzeć zapisane pliki cookie. „ds_user_id” to Twój identyfikator użytkownika
Chociaż ten link może odpowiedzieć na pytanie, lepiej jest zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie. - Z recenzji
Bugs
@Bugi Dodałem bardziej szczegółową odpowiedź. Po prostu próbuję wnieść swój wkład do społeczności stackoverflow.
Odpowiedzi:
Bardzo późna odpowiedź, ale myślę, że to najlepsza odpowiedź na ten temat. Mam nadzieję, że to jest przydatne.
Możesz uzyskać informacje o użytkowniku, gdy zostanie wysłane żądanie, korzystając z poniższego adresu URL:
Na przykład:
Ten adres URL zawiera wszystkie informacje o użytkowniku, którego nazwa użytkownika to therock
Aktualizacja i czerwiec-20-2019, API jest teraz publiczne. Nie jest wymagane uwierzytelnienie.
Aktualizacja w grudniu-11-2018, musiałem potwierdzić, że ten punkt końcowy nadal działa. Musisz się zalogować przed wysłaniem żądania do tej witryny, ponieważ nie jest to już publiczny punkt końcowy. Krok logowania jest również łatwy. To jest moje demo: https://youtu.be/ec5QhwM6fvc
Aktualizacja z kwietnia 17-2018, wygląda na to, że ten punkt końcowy nadal działa (ale nie jest już publiczny punkt końcowy), musisz wysłać żądanie z dodatkowymi informacjami do tego punktu końcowego. (Naciśnij klawisz F12, aby otworzyć pasek narzędzi programisty, a następnie kliknij kartę Sieć i prześledź żądanie).
Przepraszam, bo jestem zbyt zajęty. Mam nadzieję, że te informacje wam pomogą. Hmm, jeśli chcesz, możesz mi oddać głos przeciw.
Aktualizacja z 12 kwietnia 2018 r., Cameronjonesweb powiedział, że ten punkt końcowy już nie działa. Kiedy próbuje uzyskać dostęp do tego punktu końcowego, zwraca kod stanu 403.
źródło
Wprowadź ten adres URL w przeglądarce, podając nazwę użytkownika, którego chcesz znaleźć, i swój token dostępu
źródło
Większość metod jest przestarzała od czerwca 1/2016 zmian w API
Poniżej pracował dla mnie,
w wierszu polecenia wprowadź poniższe polecenie i naciśnij enter:
Jeśli masz szczęście, otrzymasz za pierwszym razem, jeśli nie, uzbrój się w cierpliwość, odśwież stronę i spróbuj ponownie. kontynuuj, aż zobaczysz identyfikator użytkownika. Powodzenia!!
źródło
Łatwo uzyskaj identyfikator użytkownika i dane użytkownika
https://api.instagram.com/v1/users/search?q= [ NAZWA UŻYTKOWNIKA] & client_id = [ID klienta TWOJEJ APLIKACJI]
Na przykład:
https://api.instagram.com/v1/users/search?q=zeeshanakhter2009&client_id=enter_your_id
Wynik:
źródło
Zamiast korzystać z API, można sprawdzić stronę użytkownika Instagrama, aby uzyskać identyfikator. Przykładowy kod w PHP:
Oczywiście ten kod należy dostosować, jeśli Instagram zmieni format strony.
źródło
?__a=1
aby uzyskać tylko JSON wwindow._sharedData
obiekcie, dzięki czemu możesz zrobić coś podobnegocurl https://www.instagram.com/username/?__a=1|jq -r .user.id
.Obecnie nie ma bezpośredniego interfejsu API Instagrama do pobierania identyfikatora użytkownika z nazwy użytkownika. Musisz wywołać GET / users / search API, a następnie powtórzyć wyniki i sprawdzić, czy
username
wartość pola jest równa twojej nazwie użytkownika, czy nie, a następnie pobierasz plikid
.źródło
Napisałem to narzędzie do pobierania identyfikatorów Instagrama według nazwy użytkownika: Wyszukiwanie identyfikatorów użytkownika na Instagramie .
Wykorzystuje bibliotekę python-instagram, aby uzyskać dostęp do API i zawiera link do kodu źródłowego (napisanego w Django), który ilustruje różne implementacje API Instagrama.
Aktualizacja : Dodano kod źródłowy portu do Ruby on Rails .
źródło
Wypróbowałem wszystkie powyższe rozwiązania i żadne nie działa. Myślę, że Instagram przyspieszył ich zmiany. Spróbowałem jednak metody konsoli przeglądarki i trochę się pobawiłem i znalazłem to polecenie, które dało mi identyfikator użytkownika.
Po prostu odwiedzasz stronę profilu i wpisujesz to polecenie w konsoli. Aby to zadziałało, może być konieczne odświeżenie strony. (Musiałem opublikować to jako odpowiedź z powodu mojej niskiej reputacji)
źródło
Działające rozwiązanie bez tokena dostępu na dzień 14 października 2018 r .:
Wyszukaj nazwę użytkownika:
Przykład:
To jest zapytanie wyszukiwania. Znajdź dokładnie pasujący wpis w odpowiedzi i uzyskaj identyfikator użytkownika z wpisu.
źródło
Musisz użyć,
Instagrams API
aby przekonwertować plikusername
naid
.Jeśli dobrze pamiętam, możesz użyć,
users/search
aby znaleźć nazwę użytkownika i pobrać stamtąd identyfikatorźródło
users/search
, a następnie dostajeszid
i używasz go w czymkolwiek chceszaby uzyskać swój identyfikator, wyślij uwierzytelnione żądanie do
users/self/feed
punktu końcowego interfejsu API Instagrama . odpowiedź będzie zawierała między innymi nazwę użytkownika oraz identyfikator użytkownika.źródło
Większość z tych odpowiedzi jest nieważna po zmianach interfejsu API Instagrama 6/1/2016 . Najlepsze rozwiązanie jest teraz tutaj . Przejdź do swojego kanału na instagram.com, skopiuj adres linku do dowolnego zdjęcia i wklej go w polu tekstowym na tej stronie. Działał jak urok.
źródło
Przejdź do konsoli API i skopiuj link
https://api.instagram.com/v1/users/self
w polu tekstowym i uwierzytelnij się za pomocą swojego identyfikatora Instagram i hasła, otrzymasz w odpowiedzi swój identyfikatorźródło
Można to zrobić poprzez dostęp do API Instagrama apigee.com tutaj, na stronie programistów Instagrama. Po zalogowaniu się kliknij wywołanie API „/ users / search”. Stamtąd możesz przeszukać dowolną nazwę użytkownika i odzyskać jej identyfikator.
Jeśli masz już kod dostępu, możesz to również zrobić w ten sposób: https://api.instagram.com/v1/users/search?q=USERNAME&access_token=ACCESS_TOKEN
źródło
Możesz po prostu zadzwonić pod ten link
http://jelled.com/ajax/instagram?do=username&username=[USER_NAME_GOES_HERE]&format=json
źródło
Chociaż to nie jest wymieniony na stronie API doc już znalazłem wątku , który wspomina, że można użyć
self
zamiastuser-id
dousers/{user-id}
punktu końcowego i będzie to powrót informacje o aktualnie uwierzytelnionego użytkownika.Tak więc
users/self
jest tym samym, co jawne wywołanieusers/{some-user-id}
i zawiera identyfikator użytkownika jako część ładunku. Po uwierzytelnieniu po prostu zadzwoń do,users/self
a wynik będzie zawierał identyfikator aktualnie uwierzytelnionego użytkownika, na przykład:źródło
Jeśli używasz niejawnego uwierzytelniania, musi wystąpić problem z brakiem możliwości znalezienia pliku user_id
Znalazłem sposób na przykład:
Access Token = 1506417331.18b98f6.8a00c0d293624ded801d5c723a25d3ec the User id is 1506417331
zrobiłbyś split singiel rozdzielony przez. obtenies do tokena dostępu i pierwszego elementu
źródło
Myślę, że najlepszą, najprostszą i najbezpieczniejszą metodą jest otwarcie profilu na Instagramie w przeglądarce, wyświetlenie kodu źródłowego i wyszukanie zmiennej użytkownika (ctrl + f "user": {" ) w głównym kodzie javascript. Numer identyfikacyjny w zmiennej użytkownika powinien być twoim identyfikatorem.
Oto kod jak wyglądał w momencie pisania tej odpowiedzi (może i prawdopodobnie zostanie w przyszłości zmieniony):
źródło
Oto jak możesz odzyskać swój identyfikator użytkownika z nazwy użytkownika:
źródło
Możesz to zrobić za pomocą interfejsu API Instagrama ( punkty końcowe użytkownika: / users / search)
instrukcje w php:
źródło
Oto naprawdę łatwa witryna, która dobrze mi pasuje:
http://www.instaid.co.uk/
Lub możesz wykonać następujące czynności, zastępując `` nazwę użytkownika '' swoją nazwą użytkownika na Instagramie
https://www.instagram.com/username/?__a=1
Możesz też zalogować się na swoje konto na Instagramie i skorzystać z narzędzi deweloperskich Google i przejrzeć zapisane pliki cookie. „ds_user_id” to Twój identyfikator użytkownika
źródło
Proszę zwrócić uwagę na cudzysłowy.
To nie zawsze zwraca prawidłowy wynik, ale częściej niż niecytowany:
zwraca użytkownika „self” (id: 311176867)
zwraca użytkownika „super_selfie” (id: 1422944651)
źródło
Działające rozwiązanie ~ 2018
Odkryłem, że mając token dostępu, możesz wykonać następujące żądanie w przeglądarce:
https://api.instagram.com/v1/users/self?access_token=[VALUE]
W rzeczywistości token dostępu zawiera identyfikator użytkownika (pierwszy segment tokena):
<user-id>.1677aaa.aaa042540a2345d29d11110545e2499
Możesz uzyskać token dostępu, korzystając z tego narzędzia dostarczonego przez Pixel Union .
źródło
Najpierw utwórz aplikację na Instagramie i uzyskaj identyfikator klienta dla swojej aplikacji
http://instagram.com/developer/
Teraz po prostu skopiuj i wklej następujący adres URL do okna przeglądarki, zastępując swoją nazwę użytkownika i identyfikator klienta https://api.instagram.com/v1/users/search?q=[Twoja-nazwa-wybierz&client_id=[Twój-Klient-Id]
otrzymasz wynik Json zawierający ogólne informacje o Twoim koncie wraz z numerycznym identyfikatorem użytkownika
źródło