Instagram come ottenere il mio ID utente dal nome utente?


125

Sto incorporando il mio feed di immagini nel mio sito Web utilizzando JSON, l'URL richiede il mio ID utente per poter recuperare questo feed.

Quindi, dove posso trovare / ottenere il mio ID utente?


1
Ho trovato uno strumento nuovo e più veloce per questo, vedi codeofaninja.com/tools/find-instagram-user-id
Emkey

Potresti anche essere interessato a trovare il nome utente da un ID utente, nel caso in cui qualcuno cambi frequentemente il nome utente. Ho aggiunto una risposta che funziona senza token di accesso: stackoverflow.com/a/60744028/1176454
baptx

Risposte:


235

Risposta molto tardi, ma penso che questa sia la risposta migliore di questo argomento. Spero sia utile.

Puoi ottenere informazioni sull'utente quando viene effettuata una richiesta con l'URL seguente:

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

Per esempio:

Questo URL riceverà tutte le informazioni su un utente il cui nome utente è protetto

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

Aggiornamento nel giugno-20-2019, l'API è ora pubblica. Nessuna autenticazione richiesta.

Aggiornamento dell'11 dicembre 2016, ho dovuto confermare che questo endpoint funziona ancora. È necessario effettuare l'accesso prima di inviare la richiesta a questo sito perché non è più un endpoint pubblico. Anche il passaggio di accesso è semplice. Questa è la mia demo: https://youtu.be/ec5QhwM6fvc


Aggiornamento dal 17 aprile al 2018, sembra che questo endpoint funzioni ancora (ma non è più un endpoint pubblico), è necessario inviare una richiesta con ulteriori informazioni a tale endpoint. (Premi F12 per aprire la barra degli strumenti dello sviluppatore, quindi fai clic sulla scheda Rete e traccia la richiesta.)

Scusa perché sono troppo occupato. Spero che questa informazione vi aiuti ragazzi. Hmm, sentiti libero di darmi un voto negativo se vuoi.


Aggiornamento del 12 aprile 2018, cameronjonesweb ha dichiarato che questo endpoint non funziona più. Quando tenta di accedere a questo endpoint, viene restituito il codice di stato 403.



1
Come l'hai trovato?
nilfalse,

6
Quando apri la finestra dello sviluppatore del browser e apri la scheda Rete, puoi vedere la richiesta a questo URL.
Thinh Vu

3
cerca l'ID proprietario.
Gulok,

1
Questo e spettacolare! bella scoperta. speriamo che questo non abbia un tasso limitato.
ded

2
Sfortunatamente, questo non funziona a meno che tu non abbia un ID utente specifico che conosci. Il modo in cui instagram verifica se è una richiesta valida è tramite il cookie inviato nell'intestazione. Se user_id esiste nella proprietà del cookie, verrà considerata una richiesta valida. Controlla la proprietà del cookie nell'intestazione della richiesta quando accedi all'URL visualizzato
Kiong

39

Inserisci questo URL nel tuo browser con il nome utente che desideri trovare e il tuo token di accesso

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

16
Purtroppo; questo è difettoso :( Abbiamo scoperto che se ti siedi rinfrescando questo url, puoi ottenere casualmente altri utenti il ​​cui nome utente inizia con il nome utente che hai cercato. Ad esempio, se stai cercando "fred1" ma c'è anche un "fred123 ", otterrai risultati casuali! Riferito a Instagram; in attesa di una risposta :(
Danny Tuppeny,

@frosty Lo trovo abbastanza inaffidabile: hai avuto risultati migliori?
Sambecker,

Questo non funziona, poiché per questo è necessaria l'autorizzazione "public_content".
desloovere_j

@DannyTuppeny Hai mai avuto notizie da Instagram?
Coda

@Queue Niente di utile, solo immondizia. Alla fine ci siamo arresi e, dal momento che le loro modifiche di giugno hanno completamente interrotto la nostra integrazione, li stiamo semplicemente strappando completamente dalla nostra app.
Danny Tuppeny,

18

La maggior parte dei metodi è obsoleta da giugno 1/2016 modifiche api

Di seguito ha funzionato per me,

  • accedere a Instagram sul tuo browser dire Chrome, Safari o Firefox.
  • Avvia gli strumenti per sviluppatori, vai all'opzione console.
  • al prompt dei comandi digitare sotto il comando e premere invio:

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

Se sei fortunato, al primo tentativo otterrai, in caso contrario, sii paziente, aggiorna la pagina e riprova. continua fino a quando non vedi id utente. In bocca al lupo!!


1
Ecco un esempio di codice per questa soluzione. github.com/vhpoet/liltools/blob/master/index.js#L13-L28 Ospitato: liltools.com/instagram
Vahe Hovhannisyan

18

Ottieni facilmente ID UTENTE e dettagli utente

https://api.instagram.com/v1/users/search?q= [ NOME UTENTE] & client_id = [ID client APP APP]

Per esempio:

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

Risultato:

{ "Meta": { "codice": 200}, "dati": [{ "nome utente": "zeeshanakhter2009", "bio": "http://about.me/zeeshanakhter", "sito web": "http: //zeeshanakhter.com","profile_picture":"http://images.ak.instagram.com/profiles/profile_202090411_75sq_1377878261.jpg","full_name":"Zeeshan Akhter "," id ":" 202090411 "}]}


1
Il modo più semplice E non è necessario un token di accesso! Lo adoro :)
Can Vural,

1
scrivo anche l'argomento di aiuto su quello che a java puoi vedere in dettaglio latest-tutorial.com/2014/01/27/get-instagram-media-comments
Zeeshan Akhter

6
Purtroppo; questo è imperfetto :( Abbiamo scoperto che se ti siedi rinfrescando questo url, puoi ottenere casualmente altri utenti il ​​cui nome utente inizia con il nome utente che hai cercato. Ad esempio, se stai cercando "fred1" ma c'è anche un "fred123 ", otterrai risultati casuali! Riferito a Instagram; in attesa di una risposta :(
Danny Tuppeny,

1
Sono d'accordo con Danny, questo metodo non sempre funziona.
circa

2
Non funziona più da quando Instagram ha rimosso tutto il supporto client_id dal 1 ° giugno 2016
Malcolm Box

14

Invece di usare l'API, si può esaminare la pagina utente di Instagram per ottenere l'id. Codice di esempio in 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"];

Naturalmente, questo codice deve essere adattato se Instagram cambia il suo formato di pagina.


4
Sembra una cattiva idea non usare l'API
472084

2
Come menziona la risposta di Thinh Vu, puoi aggiungere ?__a=1per ottenere solo il JSON window._sharedDatanell'oggetto, in modo da poter fare qualcosa di simile curl https://www.instagram.com/username/?__a=1|jq -r .user.id.
nisetama,

7

Attualmente non esiste un'API di Instagram diretta per ottenere l'ID utente dal nome utente. Devi chiamare l' API GET / users / search e quindi ripetere i risultati e verificare se il usernamevalore del campo è uguale al tuo nome utente o meno, quindi prendi il id.


6

Ho scritto questo strumento per recuperare gli ID Instagram per nome utente: Ricerca ID utente Instagram .

Utilizza la libreria python-instagram per accedere all'API e include un collegamento al codice sorgente (scritto su Django), che illustra varie implementazioni dell'API di Instagram.

Aggiornamento : aggiunto il codice sorgente per la porta a Ruby on Rails .


4
Strumento per il recupero degli ID di Instagram tramite collegamento al nome utente non funzionante. Per favore aggiornalo.
Nishant Nawarkhede,

@JaydeepJadav nemmeno tanto quanto un "per favore"? Il codice sorgente è su GitHub - sei più che benvenuto ad aprire una richiesta pull.
zeantsoi,

5

Ho provato tutte le soluzioni di cui sopra e nessuna funziona. Immagino che Instagram abbia accelerato i loro cambiamenti. Ho provato, tuttavia, il metodo della console del browser e ho giocato un po 'e ho trovato questo comando che mi ha dato l'ID utente.

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

Basta visitare la pagina di un profilo e immettere questo comando nella console. Tuttavia, potrebbe essere necessario aggiornare la pagina per farlo funzionare. (Ho dovuto pubblicare questo come risposta, a causa della mia scarsa reputazione)


5

Soluzione funzionante senza token di accesso dal 14 al 14 ottobre 2018:

Cerca il nome utente:

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

Esempio:

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

Questa è una query di ricerca. Trova la voce corrispondente esatta nella risposta e ottieni l'ID utente dalla voce.


risposta breve e migliore ma se il nome utente non viene trovato, verranno visualizzati i risultati correlati.
sanjeet bisht

4

È necessario utilizzare Instagrams APIper convertire il vostro usernamea id.

Se ricordo bene che usi users/searchper trovare il nome utente e ottenere l'id da lì


Puoi dirmi il metodo che lo fa !?
Muhammad Reda,

fa cosa? la ricerca viene raggiunta dalla richiesta API users/search, quindi ottieni la ide la usi in qualunque cosa
tu

4
Purtroppo; questo è imperfetto :( Abbiamo scoperto che se ti siedi rinfrescando questo url, puoi ottenere casualmente altri utenti il ​​cui nome utente inizia con il nome utente che hai cercato. Ad esempio, se stai cercando "fred1" ma c'è anche un "fred123 ", otterrai risultati casuali! Riferito a Instagram; in attesa di una risposta :(
Danny Tuppeny,

sostituire il nome utente con il nome utente effettivo nel seguente link api.instagram.com/v1/users/…
Chhatrapati Sharma

3

per ottenere il tuo ID, fai una richiesta autenticata users/self/feedall'endpoint dell'API di Instagram . la risposta conterrà, tra gli altri dati, il nome utente e l'id dell'utente.


3

La maggior parte di queste risposte non sono valide dopo le modifiche all'API Instagram del 6/1/2016 . La migliore soluzione ora è qui . Vai al tuo feed su instagram.com, copia l'indirizzo del link per qualsiasi tua foto e incollalo nella casella di testo in quella pagina. Ha funzionato come un fascino.


2

Vai alla console API e copia il collegamento https://api.instagram.com/v1/users/self nel campo di testo e esegui l'autenticazione utilizzando il tuo ID e password instagram, otterrai il tuo ID in risposta


2

Questo può essere fatto tramite l'accesso API Instagram di apigee.com qui sul sito degli sviluppatori di Instagram. Dopo aver effettuato l'accesso, fai clic sulla chiamata API "/ users / search". Da lì puoi cercare qualsiasi nome utente e recuperare il suo ID.

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


Se hai già un codice di accesso, puoi farlo anche in questo modo: https://api.instagram.com/v1/users/search?q=USERNAME&access_token=ACCESS_TOKEN


3
Purtroppo; usando gli utenti / ricerca questo è imperfetto :( Abbiamo scoperto che se ti siedi rinfrescando questo url, puoi ottenere casualmente altri utenti il ​​cui nome utente inizia con il nome utente che hai cercato. Ad esempio se stai cercando "fred1" ma c'è anche un "fred123", otterrai risultati casuali! Riferito a Instagram, in attesa di una risposta :(
Danny Tuppeny

2
Non è un difetto - in realtà è una funzionalità. È un'API di ricerca , il che significa che funziona come la casella di ricerca nell'app Instagram. Il modo corretto di recuperare un ID utente per un nome utente è eseguire una query su questo endpoint di ricerca, quindi scorrere gli oggetti restituiti e verificare la corrispondenza esatta del nome utente.
John Dorian,

1
Eseguito l'upgrade di entrambi, ma come sviluppatori API possiamo concordare di creare un endpoint di ricerca utente per evitarlo, offrendo solo una ricerca è davvero fastidioso
sricks


2

Anche se non è elencato nella pagina API doc più, ho trovato un filo che menziona il fatto che è possibile utilizzare selfal posto di user-idper lausers/{user-id} punto finale e che restituisca informazioni dell'utente attualmente autenticato.

Quindi, users/selfè uguale a una chiamata esplicita a users/{some-user-id}e contiene l'ID dell'utente come parte del payload. Una volta autenticato, effettua una chiamata users/selfe il risultato includerà l'ID dell'utente attualmente autenticato, in questo modo:

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

Se stai utilizzando l'autenticazione implicita, devi avere il problema di non riuscire a trovare user_id

Ho trovato un modo per esempio:

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

faresti uno split singolo separato da. obtenies to access token e il primo elemento


2

Penso che il metodo migliore, più semplice e più sicuro sia quello di aprire il tuo profilo Instagram in un browser, visualizzare il codice sorgente e cercare la variabile utente (ctrl + f "utente": {" ) all'interno del codice javascript principale. Il numero ID all'interno della variabile utente dovrebbe sii il tuo id.

Questo è il codice che aspetto aveva nel momento in cui scrivevo questa risposta (può, e probabilmente sarà cambiato in futuro):

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

2

Ecco come è possibile recuperare l'ID utente da un nome utente:

$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

Puoi farlo usando l' API di Instagram (Endpoint utente: / utenti / ricerca)

come fare in 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
Purtroppo; usando gli utenti / ricerca questo è imperfetto :( Abbiamo scoperto che se ti siedi rinfrescando questo url, puoi ottenere casualmente altri utenti il ​​cui nome utente inizia con il nome utente che hai cercato. Ad esempio se stai cercando "fred1" ma c'è anche un "fred123", otterrai risultati casuali! Riferito a Instagram, in attesa di una risposta :(
Danny Tuppeny

2

Ecco un sito web davvero semplice che funziona bene per me:

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

Oppure puoi fare quanto segue sostituendo "nome utente" con il tuo nome utente Instagram

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

Oppure puoi accedere al tuo account Instagram e utilizzare gli strumenti di sviluppo di Google e guardare i cookie che sono stati memorizzati. 'ds_user_id' è il tuo ID utente

inserisci qui la descrizione dell'immagine


Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
Bugs

@Bugs Ho aggiunto una risposta più dettagliata. Sto solo cercando di contribuire alla community di StackOverflow.
BenEgan1991,

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

Si prega di notare le virgolette.

Questo non restituisce sempre un risultato valido ma più spesso di uno non quotato:

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

restituisce l'utente "self" (ID: 311176867)

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

restituisce l'utente "super_selfie" (ID: 1422944651)


1

Soluzione di lavoro ~ 2018

Ho scoperto che, fornendo un token di accesso, è possibile eseguire la seguente richiesta nel browser:

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

Infatti, il token di accesso contiene l' ID utente (il primo segmento del token):

<user-id>.1677aaa.aaa042540a2345d29d11110545e2499

Puoi ottenere un token di accesso utilizzando questo strumento fornito da Pixel Union .


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.