Weblog de Javier Arias

API Tuenti

PHPTUENTI: API no oficial de Tuenti

PHPtuenti es una API no oficial de Tuenti escrita en PHP siguiendo el paradigma de orientación a objetos.

Tabla de contenidos

  1. Requisitos
  2. Descargas
  3. Documentación
  4. Ejemplos
  5. Advertencia
  6. Responsabilidad
  7. Enlaces externos

Requisitos

  • PHP 5 con la librería cURL.
  • Tener una cuenta en Tuenti con el modo móvil activado.

Descargas

Versión 0.0.7, publicada el 18 de enero de 2010. Para el registro de cambios vea el archivo ChangeLog.


Documentación

Próximamente más detallada.

Clase tuentiapi

Estos son sus métodos principales:

bool login ( string $email, string $password )
Se identifica en Tuenti con los datos proporcionados.
Devuelve: true si la identificación es existosa, false en caso contrario.
bool logout ( )
Se desconecta de Tuenti.
Devuelve: true si la identificación es existosa, false en caso contrario.
array getMyFriends ( )
Devuelve un array de objetos de tipo tuenti_user con todos los amigos de la cuenta con la que se ha realizado la identificación. De cada amigo se obtiene: el ID, el nombre, la frase del estado y la URL de la imagen del perfil; para obtener más datos del usuario vea la función getUserInfo().
array getFriends ( int $uid )
Devuelve un array de objetos de tipo tuenti_user con todos los amigos del usuario con el ID pasado como parámetro. De cada amigo se obtiene: el ID, el nombre, la frase del estado y la URL de la imagen del perfil; para obtener más datos del usuario vea la función getUserInfo().
array getMyWall ( [int $limit] )
Devuelve los mensajes que el usuario identificado tiene en su tablón en un array de objetos de tipo tuenti_message. El parámetro opcional $limit indica el número de mensajes que se obtendrán; si es omitido se obtienen los 20 últimos mensajes.
array getWall ( int $uid [,int $limit] )
Devuelve los mensajes que el usuario cuyo identificador es $uid tiene en su tablón en un array de objetos de tipo tuenti_message. El parámetro opcional $limit indica el número de mensajes que se obtendrán; si es omitido se obtienen los 20 últimos mensajes.
tuenti_user getUserInfo ( int $uid )
Devuelve un objeto de tipo tuenti_user con varios datos del usuario cuyo identificador es $uid o null si el parámetro no es válido. Los datos que se obtienen son: el nombre, la frase del estado, la URL de la imagen del perfil, la fecha de cumpleaños, la ciudad, la provincia, el estado marital (soltero, con alguien, etc.) y el parentesco (amigo, amigo de amigo o fuera de mi red).
array getNotifications ( )
Devuelve las notificaciones (peticiones de amigo, mensajes, comentarios, etc.) del usuario con el que se realiza la identificación en un array de objetos de tipo tuenti_notification.
array getPhotoAlbums ( int $uid )
Devuelve un array de objetos de tipo tuenti_photo_album del usuario con el ID dado.
string downloadProfileImage ( int $uid [,int $size] )
Descarga la imagen que el usuario cuyo identificador es $uid, la guarda en la carpeta downloads y devuelve el path al archivo recién descargado. El parámetro opcional size permite indicar el tamaño de la imagen; los valores admitidos son:
phptuenti::BIG_SIZE, 500 pixeles de ancho.
phptuenti::MEDIUM_SIZE, 200 pixeles de ancho.
phptuenti::SMALL_SIZE, 75 pixeles de ancho.
phptuenti::MINI_SIZE, 30 pixeles de ancho.
Ejemplo:
$uid = 66554433;
downloadProfileImage ( $uid, phptuenti::MEDIUM_SIZE );

Nota: antes de descargar la imagen de un perfil es necesario obtener la información del usuario mediante la función getUserInfo(uid).

Clase tuenti_user

Estos son sus métodos principales:

string getBirthday ( )
Devuelve la fecha de nacimiento del usuario en formato dd/mm/aaaa.
string getCity ( )
Devuelve la ciudad del usuario. Si el usuario no ha rellenado este campo en su perfil se devolverá un string vacío.
string getFriends ( )
Devuelve todos los amigos del usuario en un array de objetos de tipo tuenti_user.
string getMaritalStatus ( )
Su estado civil: casado, soltero, con alguien, etc.
string getName ( )
Devuelve el nombre del usuario.
string getNotifications ( )
Devuelve las nuevas notificaciones del usuario (peticiones de amigo, nuevos mensajes, nuevos comentarios, etc.).
array getPhotoAlbums ( )
Devuelve un array de objetos de tipo tuenti_photo_album del usuario.
string getProfileImage ( [int $size] )
Devuelve la URL de la imagen del perfil del usuario. El parámetro opcional size permite indicar el tamaño de la imagen; los valores admitidos son:
phptuenti::BIG_SIZE, 500 pixeles de ancho.
phptuenti::MEDIUM_SIZE, 200 pixeles de ancho.
phptuenti::SMALL_SIZE, 75 pixeles de ancho.
phptuenti::MINI_SIZE, 30 pixeles de ancho.
Ejemplo: $img = getProfileImage(phptuenti::MEDIUM_SIZE);
string getProvince ( )
Devuelve la provincia del usuario.
string getRelationship ( )
Devuelve la relación entre el usuario y tú (amigo, amigo de amigo o fuera de tu red).
string getStatus ( )
Devuelve el estado del usuario (la frase “está…”).
int getUID ( )
Devuelve el ID del usuario.
array getWall ( )
Devuelve el muro del usuario, que no es más que un array de objetos de tipo tuenti_message.

Clase tuenti_photo_album

Representa un álbum de photos de tuenti. Estos son sus métodos principales:

string getName ( )
Devuelve el nombre del álbum de photos.
int getNumber ( )
Devuelve el número de fotos que contiene el álbum. Este valor siempre será mayor o igual que 1.

Clase tuenti_message

Representa un mensaje del tablón de un usuario de tuenti. Estos son sus métodos principales:

string getAuthor ( )
Devuelve el autor del mensaje.
string getMessage ( )
Devuelve el texto del mensaje.
string getTime ( )
Devuelve hace cuánto que el mensaje se escribió (“hace x días”, etc.).

Clase tuenti_notification

Representa una notificación de tuenti (peticiones de amigos, nuevos mensajes en el tablón, etc.). Estos son sus métodos principales:

string getNotification ( )
Devuelve la notificación. Ej: “1 nueva petición de amigo”
string getNotificationURL ( )
Devuelve la URL donde se puede ver la notificación. Para el ejemplo anterior: http://m.tuenti.com/?m=friends&func=view_friend_requests
string getLink ( )
Devuelve la notificación en forma de enlace HTML. Para el ejemplo anterior: <a href=”http://m.tuenti.com/?m=friends&func=view_friend_requests”>1 nueva petición de amigo</a>

Ejemplos de uso

Ejemplo 1

< ?php

/**
 *
 * Este ejemplo utiliza la API PHPtuenti para obtener los amigos del usuario
 * con el que se realiza la identificación y los imprime a consola.
 *
 */

require 'api/phptuenti.php';

$t = phptuenti::tuenti();

// nos identificamos
if ( !$t->login('micuenta@detuenti.com', 'contraseña') )
    die('Dirección de correo o contraseña inválidos.');

// obtenemos nuestros amigos
$myfriends = $t->getMyFriends();

if ( count($myfriends) == 0 ) {
    // no tenemos ningún amigo agregado
    echo "No tengo ningún amigo :(\n";
}
else {
    // mostramos de cada amigo su nombre, su UID, su estado y su imagen de perfil
    echo "Mis amigos son:\n";
    foreach ( $myfriends as $friend ) {
        // $friend es un objeto de tipo tuenti_user
        echo $friend->getName(), ' (' . $friend->getUID(), ")\n";
        echo '--> ', $friend->getStatus(), "\n";
        echo '--> ', $friend->getProfileImage(), "\n\n";
    }
    echo "Soy muy popular, tengo " . count($myfriends) . " amigos.\n";
}

// realizamos la desconexión de tuenti
$t->logout();

?>

La ejecución de este programa produce, si la identificación es exitosa, un resultado similar al que se muestra a continuación:

Armando Guerra Segura (11223344)
–> deseando que llegue el viernes!
–> http://imagenes9.tuenti.com/i40/i/1/200/m/0/iu9hk-xpuwrkx5Iuq9t.0.jpg

Luis Alfonso de Borbón (22334455)
–> preparándome para el mundial…
–> http://imagenes1.tuenti.com/i25/i/3/200/3/8/qWu8WUV8hm3HyO3kShwb.0.jpg

Soy muy popular, tengo 2 amigos.

Ejemplo 2

< ?php

/**
 *
 * Este ejemplo utiliza la API PHPtuenti para obtener las álbumes de fotos
 * del usuario con UID 6050403020 (ficticio). Para poder obtener los álbumes
 * el usuario con el $uid dado ha de existir y debes poder acceder a su perfil;
 * en caso contrario la función getPhotoAlbums() devolverá 0.
 *
 */

require 'api/phptuenti.php';

$t = phptuenti::tuenti();

// nos identificamos en tuenti
if ( !$t->login('micuenta@detuenti.com', 'contraseña') )
    die('Dirección de correo o contraseña inválidos.');

$uid = 6050403020;
// obtenemos los albumes del usuario
$albums = $t->getPhotoAlbums($uid);

if ( count($albums) == 0 ) {
    // no tiene fotos subidas (o el usuario $uid no existe o no se puede acceder a su página de fotos)
    echo "Mi amigo #$uid no tiene álbumes de fotos :(\n";
}
else {
    echo "Mi amigo #$uid tiene estos álbumes de fotos:\n";
    foreach ( $albums as $albumtemp ) {
        // $albumtemp es un objeto de tipo tuenti_photo_album
        echo "Nombre: " . $albumtemp->getName() . "\n";
        echo "Número de fotos: " . $albumtemp->getNumber() . "\n";
    }
}

// realizamos la desconexión de tuenti
$t->logout();

?>

Ejemplo 3

< ?php

/**
 *
 * Este ejemplo utiliza la API PHPtuenti para obtener las notificaciones
 * del usuario con el que se realiza la identificación.
 *
 * Genera un código HTML similar al siguiente:
 *
 * <h1>Novedades en mi tuenti</h1>
 * <ul>
 * <li><a href="?m=friends&amp;func=view_friend_requests">1 nueva petición de amigo</a></li>
 * <li><a href="?m=profile&amp;func=my_wall">1 nuevo comentario en tu tablón</a></li>
 * <li><a href="?m=messaging">1 mensaje nuevo</a></li>
 * </ul>
 *
 */

require 'api/phptuenti.php';

$t = phptuenti::tuenti();

// nos identificamos en tuenti
if ( !$t->login('micuenta@detuenti.com', 'contraseña') )
   die('Dirección de correo o contraseña inválidos.');

// obtenemos las novedades
$notificaciones = $t->getNotifications();

if ( count($notificaciones) == 0) {
    // no hay nada nuevo
    echo "No tengo novedades en mi tuenti";
}
else {
    // hay novedades! las mostramos por pantalla
    ?>
    <h1>Novedades en mi tuenti</h1>
    <ul>
    < ?
        foreach ( $notificaciones as $notif ) {
            // $notif es un objeto de tipo tuenti_notification
            echo "<li>" . $notif->getLink() . "\n";
        }
    ?>
    </ul>
< ?
}

// realizamos la desconexión de tuenti
$t->logout();

?>

Advertencia

Esta API se encuentra en estado de desarrollo muy temprano, de manera que pueden ocurrir fallos o no funcionar como se espera. Si encuentras un fallo, comunícamelo por favor.


Responsabilidad

El programador de esta API no tiene ninguna relación con Tuenti y no se responsabiliza del uso indebido de la misma ni de los daños que pueda ocasionar. La API, que se encuentra en estado de desarrollo, se proporciona «tal cual», sin ningún tipo de garantía expresa ni implícita. Úsala bajo tu responsabilidad.


Enlaces externos

Otros proyectos de API para Tuenti:

100 comentarios to “API Tuenti”

  1. […] API oficial para los developers interesados en … javierarias.wordpress.com/api-tuenti – ver Direcciones y cuentas de Tuenti | Tuenti Adictos Aprovechando que Google ha publicado su listado […]

  2. Mario said

    Hola, muy buenas!!! He intentado curiosear con este API ya que debo realizar un proyecto que permita recuperar los mensajes de determindaos usuarios desde una interfaz diferente. He instalad la librería cURL e introducido los ejemplos en el HTDOCS de la carpeta XAMPP de mi equipo. Sin embargo, cuando pruebo con localhost/sample1.php no funciona, es decir, dice que no tengo amigos cuando no es así. Supongo que no realizará bien la conexión y que por lo tanto me falta algún pasao para poder ver el resultado correctamente.

    Agradecería si alguien ha conseguido algún resultado con este API que me ofreciera algún tipo de solución.

    Muchas gracias!!!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: