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?
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?
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:
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 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.
Wprowadź ten adres URL w przeglądarce, podając nazwę użytkownika, którego chcesz znaleźć, i swój token dostępu
https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]
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:
window._sharedData.entry_data.ProfilePage[0].user.id
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!!
Ł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:
{"meta": {"code": 200}, "data": [{"username": "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 "}]}
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 = 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"];
Oczywiście ten kod należy dostosować, jeśli Instagram zmieni format strony.
?__a=1
aby uzyskać tylko JSON w window._sharedData
obiekcie, dzięki czemu możesz zrobić coś podobnego curl 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 plik id
.
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 .
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.
window._sharedData.entry_data.ProfilePage[0].graphql.user.id
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)
Działające rozwiązanie bez tokena dostępu na dzień 14 października 2018 r .:
Wyszukaj nazwę użytkownika:
https://www.instagram.com/web/search/topsearch/?query=<username>
Przykład:
https://www.instagram.com/web/search/topsearch/?query=therock
To jest zapytanie wyszukiwania. Znajdź dokładnie pasujący wpis w odpowiedzi i uzyskaj identyfikator użytkownika z wpisu.
Musisz użyć, Instagrams API
aby przekonwertować plik username
na id
.
Jeśli dobrze pamiętam, możesz użyć, users/search
aby znaleźć nazwę użytkownika i pobrać stamtąd identyfikator
users/search
, a następnie dostajesz id
i używasz go w czymkolwiek chcesz
aby 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.
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.
{
"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"
}]}
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
Możesz po prostu zadzwonić pod ten link
http://jelled.com/ajax/instagram?do=username&username=[USER_NAME_GOES_HERE]&format=json
Chociaż to nie jest wymieniony na stronie API doc już znalazłem wątku , który wspomina, że można użyć self
zamiast user-id
do users/{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łanie users/{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:
{
"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
}
}
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
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):
"user":{"username":"...","profile_picture":"...","id":"..........","full_name":"..."}},
Oto jak możesz odzyskać swój identyfikator użytkownika z nazwy użytkownika:
$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;
Możesz to zrobić za pomocą interfejsu API Instagrama ( punkty końcowe użytkownika: / users / search)
instrukcje w 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);
Oto naprawdę łatwa witryna, która dobrze mi pasuje:
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
https://api.instagram.com/v1/users/search?q="[USERNAME]"&access_token=[ACCESS TOKEN]
Proszę zwrócić uwagę na cudzysłowy.
To nie zawsze zwraca prawidłowy wynik, ale częściej niż niecytowany:
https://api.instagram.com/v1/users/search?q="self"&count=1&access_token=[ACCESS TOKEN]
zwraca użytkownika „self” (id: 311176867)
https://api.instagram.com/v1/users/search?q=self&count=1&access_token=[ACCESS TOKEN]
zwraca użytkownika „super_selfie” (id: 1422944651)
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 .
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