2010-01-22 20 views
19

C'è un modo rapido per estrarre l'immagine del profilo di Twitter in PHP o Javascript? Ho bisogno di ottenere l'url dell'immagine FULL (non la dimensione avatar). Grazie. Qualsiasi esempio di codice è buono.Pull image profile twitter

risposta

46

Twitter haaveva un semplice URL semplice.

https://api.twitter.com/1/users/profile_image/abraham

Ha opzioni di formato come "? Size = più grande"

Si può leggere di più su di esso su Little known Twitter and TwitterAPI tips and tricks.

Twitter ha ora la documentazione come GET users/profile_image/:screen_name.

Aggiornamento: il supporto per questo metodo è stato rimosso dalla versione 1.1 dell'API. Recommended practice in avanti è GET /users/show e nella cache profile_image_url localmente nel tuo servizio/app.

+1

Questo non funziona più dall'API di Twitter v1.1 – nivs

+0

Sembra che il supporto rimosso da Twitter per il metodo in v1.1. Ho aggiornato la risposta con la pratica corrente raccomandata. – abraham

+0

si presenta come il semplice url è lavorare di nuovo, per esempio ** [https://api.twitter.com/1/users/profile_image/gb96] (https://api.twitter.com/1/users/profile_image/gb96) ** – gb96

0

So che questo non è l'esempio di codice completo come richiesto (perché ci sono diversi modi per farlo), ma hai già l'URL per l'avatar? Ho notato che trasformare ".../eric.png" in ".../eric_bigger.png" ha portato all'immagine più grande. Quando "_bigger" esiste già, rimuovendolo mi ha dato l'URL dell'immagine originale.

Ho provato questo con più immagini profilo dei follower e, quando l'immagine del profilo era> 150px quadrati, funzionava.

12
function get_big_profile_image($username, $size = '') { 
    $api_call = 'http://twitter.com/users/show/'.$username.'.json'; 
    $results = json_decode(file_get_contents($api_call)); 
    return str_replace('_normal', $size, $results->profile_image_url); 
} 

get_big_profile_image ('bobsaget', '_bigger') dovrebbe restituire un grande avatar: http://a1.twimg.com/profile_images/330305510/n229938150541_9850_bigger.jpg

get_big_profile_image ('bobsaget') dovrebbe restituire un ancora più grande immagine: http://a1.twimg.com/profile_images/330305510/n229938150541_9850.jpg

+0

Molto utile, grazie. – Avdi

+1

Questa funzione non è più funzionante. Qualche altra idea? Qualche altra soluzione disponibile? – Lomse

+0

Non funziona. Errore: {"errori": [{"messaggio": "Mi dispiace, quella pagina non esiste", "codice": 34}]} –

5

answerers precedenti hanno fornito la risposta corretta che volevo creare un collegamento a Twitter originale pagina API doc in modo che ci si sa che è in realtà un modo ufficiale di fare cose:

È necessario specificare ?size=

  • più grande - 73px da 73px
  • normale - 48px da 48px
  • mini - 24px da 24px
http://api.twitter.com/1/users/profile_image/twitter.json?size=bigger 
http://api.twitter.com/1/users/profile_image/twitter.json?size=normal 

http://dev.twitter.com/doc/get/users/profile_image/:screen_name

2

Quindi, non è nella documentazione (http://dev.twitter.com/doc/get/users/profile_image/:screen_name), ma sembra che dopo avere recuperato l'immagine specificando una delle tre dimensioni (più grande, normale, mini), è sufficiente rimuovere il suffisso prima dell'estensione del file per ottenere l'immagine originale. Hmm ... è sicuro da usare?

Per esempio, la seguente interrogazione: api.twitter.com/1/users/profile_image/rrbrambley

risultati in: a2.twimg.com/profile_images/931772958/deformed_cropped_headonly_normal.jpg

Se cambio questo URL rimuovendo "_normal" allora ottengo l'immagine originale: a2.twimg.com/profile_images/931772958/deformed_cropped_headonly.jpg

So che ci sono applicazioni che utilizzano l'immagine originale. Questo deve essere il modo?

5

Mi scuso se questo è qualcosa che è ormai noto, ma non l'ho visto da nessuna parte documentato durante le mie ricerche, tra il cinguettio documentazione ufficiale.

è possibile aggiungere la? Size = originale come parametro, che restituirà l'immagine inserita originale per l'utente.

Quindi: http://api.twitter.com/1/users/profile_image/twitter.json?size=original