2010-01-22 21 views
19

¿Existe alguna forma rápida de obtener la imagen del perfil de Twitter en PHP o Javascript? Necesito obtener la url de la imagen COMPLETA (no el tamaño del avatar). Gracias. Cualquier muestra de código es buena.Tire de la imagen del perfil de twitter

Respuesta

46

Twitter tienetenía una buena URL simple.

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

Cuenta con opciones de tamaño como "? = Tamaño más grande"

Puede leer más sobre esto en Little known Twitter and TwitterAPI tips and tricks.

Twitter ahora tiene la documentación como GET users/profile_image/:screen_name.

Actualización: El soporte para este método se ha eliminado de la v1.1 de la API. Recommended practice en adelante es GET /users/show y caché profile_image_url localmente en su servicio/aplicación.

+1

Esto ya no funciona desde Twitter API v1.1 – nivs

+0

Parece que Twitter eliminó el soporte para el método en v1.1. Actualicé la respuesta con la práctica recomendada actual. – abraham

+0

Parece que la URL simple está funcionando de nuevo, p. ** [https://api.twitter.com/1/users/profile_image/gb96] (https://api.twitter.com/1/users/profile_image/gb96) ** – gb96

0

Sé que esta no es la muestra de código completo solicitada (porque hay varias formas de hacerlo), pero ¿ya tiene la URL para el avatar? Noté que al convertir ".../eric.png" en ".../eric_bigger.png" se obtenía una imagen más grande. Cuando "_bigger" ya existe, eliminarlo me dio la URL de la imagen original.

Probé esto con varias imágenes de perfil de seguidores y, cuando la imagen de perfil era> 150 píxeles cuadrados, funcionó.

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') debería devolver una gran imagen de usuario: http://a1.twimg.com/profile_images/330305510/n229938150541_9850_bigger.jpg

get_big_profile_image ('bobsaget') debe devolver un aún mayor imagen: http://a1.twimg.com/profile_images/330305510/n229938150541_9850.jpg

+0

muy útil, gracias. – Avdi

+1

Esta función ya no funciona. ¿Alguna otra idea? ¿Hay alguna otra solución disponible? – Lomse

+0

No funciona. Error: {"errors": [{"message": "Lo siento, esa página no existe", "código": 34}]} –

5

que responden anteriores han dado la respuesta correcta que quería enlazar a la página original Twitter API doc para que supieras que es en realidad una forma oficial de hacer cosas:

Es necesario especificar ?size=

  • más grande - 73px por 73px
  • normales - 48px por 48px
  • Mini - 24px por 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

Por lo tanto, no es en la documentación (http://dev.twitter.com/doc/get/users/profile_image/:screen_name), pero parece que después de recuperar la imagen, se especifica cualquiera de los tres tamaños (más grande, normal, mini), puede eliminar el sufijo antes de la extensión del archivo para obtener la imagen original. Hmm ... ¿es seguro de usar?

Por ejemplo, la siguiente consulta: api.twitter.com/1/users/profile_image/rrbrambley

Resultados en: a2.twimg.com/profile_images/931772958/deformed_cropped_headonly_normal.jpg

Si cambio de esta URL mediante la eliminación de "_normal", entonces me sale la imagen original: a2.twimg.com/profile_images/931772958/deformed_cropped_headonly.jpg

Sé que hay aplicaciones que utilizan la imagen original. Este debe ser el camino?

5

Disculpas si esto es algo que ahora se sabe, pero no vi documentado en ninguna parte durante mis búsquedas, incluidos los documentos oficiales de Twitter.

Puede agregar? Tamaño = original como parámetro, que devolverá la imagen cargada original para el usuario.

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

Cuestiones relacionadas