Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/03/2012, 05:44
Avatar de ShuyithoKruz
ShuyithoKruz
 
Fecha de Ingreso: marzo-2012
Ubicación: Tijuana
Mensajes: 40
Antigüedad: 12 años, 7 meses
Puntos: 3
Respuesta: Mejor tecnica para mostrar avatares de twitter

Leyendo un poco en twitter puedes leer esto https://dev.twitter.com/docs/api/1/get/users/profile_image/:screen_name

Y aqui te presento algunos ejemplos faciles de usar
Ejemplo 1: https://api.twitter.com/1/users/profile_image/USERNAME?size=bigger
Ejemplo 2: http://img.tweetimag.es/i/USERNAME
Ejemplo 3: http://api.twitter.com/1/users/profile_image/USERNAME.json?size=bigger

Solo cambiarias el USERNAME por el nombre de usuario.

O ya si quieres hacerlo mediante php aqui te dejo este codigo
Código PHP:
<?php
class twitterImage
{
  var 
$user='';
  var 
$image='';
  var 
$displayName='';
  var 
$url='';
  var 
$format='json';
  var 
$requestURL='http://twitter.com/users/show/';
  var 
$imageNotFound=''//any generic image/avatar. It will display when the twitter user is invalid
  
var $noUser=true;
 
  function 
__construct($user)
  {
    
$this->user=$user;
    
$this->__init();
 
  }
  
/*
   * fetches user info from twitter
   * and populates the related vars
   */
  
private function __init()
  {
    
$data=json_decode($this->get_data($this->requestURL.$this->user.'.'.$this->format)); //gets the data in json format and decodes it
    
if(strlen($data->error)<=0//check if the twitter profile is valid
 
    
{
      
$this->image=$data->profile_image_url;
      
$this->displayName=$data->name;
      
$this->url=(strlen($data->url)<=0)?'http://twitter.com/'.$this->user:$data->url;
      
$this->location=$data->location;
    }
    else
    {
      
$this->image=$this->imageNotFound;
    }
 
 
  }
  
/* creates image tag
   * @params
   * passing linked true -- will return an image which will link to the user's url defined on twitter profile
   * passing display true -- will render the image, else return
   */
  
function profile_image($linked=false,$display=false)
  {
    
$img="<img src='$this->image' border='0' alt='$this->displayName' />";
    
$linkedImg="<a href='$this->url' rel='nofollow' title='$this->displayName'>$img</a>";
    if(!
$linked && !$display//the default case
      
return $img;
 
    if(
$linked && $display)
      echo 
$linkedImg;
 
    if(
$linked && !$display)
      return 
$linkedImg;
 
    if(
$display && !$linked)
      echo 
$img;
 
 
  }
  
/* gets the data from a URL */
 
  
private function get_data($url)
  {
    
$ch curl_init();
    
$timeout 5;
    
curl_setopt($ch,CURLOPT_URL,$url);
    
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    
$data curl_exec($ch);
    
curl_close($ch);
    return 
$data;
  }
 
}
 
/* Example on how to use this class*/
//require_once('twitterImage.php') you will require this line if you are saving the above class in a different file
 
//the two lines are enough to display an image off the twitter
 
//$t=new twitterImage('digimantra'); //pass the twitter username
//$t->profile_image(true,true);  //this will render a linked image
 
/* More info about the params of profile_image function
 * true,true -- will render a linked image
 * true,false -- will return a linked image, will not render
 * false,true -- will render an image without link
 * false,false (or blank) -- will return an image, will not render
 */
?>
El guión es bastante fácil de entender y aplicar. Sólo tienes que copiar el contenido y guardarlo en un archivo PHP. Para mostrar una imagen que usted tiene que escribir sólo las líneas 2, después de incluir la clase anterior en el script.

Código PHP:
require_once('twitterImage.php')  //include the above class
$t=new twitterImage('digimantra'); //create instance of the class and pass the username
$t->profile_image(true,true); //display a linked image 
Puede mostrar una imagen con y sin el enlace. La imagen estará vinculado a la dirección proporcionada por el usuario en la página principal de Twitter, y si el enlace no se proporciona, a continuación, se ligará al perfil de usuario de Twitter por defecto.

Si usted cree que necesita algunos cambios o si quieren añadir más funcionalidad a la secuencia de comandos, hágamelo saber. Estaré encantado de poner al día la secuencia de comandos, dependiendo de la magnitud de la solicitud.