Categorías
Tuenti Tutoriales

Otra API en PHP para Tuenti (El Proyecto)

Descripción

Interfaz PHP no oficial para interactuar con Tuenti mediante su API cerrada para dispositivos móviles. 

Namespaces y autoload:

Para optimizar el uso de la memoria y evitar colisión de nombres con otras librerías se debe utilizar el mecanismo de los namespaces (presentes en todas las clases) en conjunción con la función autoload (para carga dinámica de ficheros). Es necesario incluir en el programa final el ficheroCore/autoloader.php. En caso de querer sobreescribir alguna parte o incrustar el API en otro programa es recomendable reescribir la función autoload (contenida en Core/autoloader.php) o crear un fichero autoloader personalizado.

Conectar con Tuenti (con captura de Excepciones) es tan sencillo como:

<?php
include ‘Core/autoloader.php’; 

try
{
$tapi = new Kiwwito/TuentiAPI/Bundle (‘user@email.com’, ‘password’);
}
//Capturamos posibles excepciones en la ejecución
catch (Exception $e)
{
echo ‘Ha ocurrido un error: ‘ . $e->getMessage();
}

Procedimientos remotos:

La comunicación entre aplicación y servidor (llamadas a procedimientos remotos) se efectúan mediante la librería cURL para PHP.

La lógica para efectuar llamadas a procedimientos remotos se ha abstraído en la claseCore/RemoteCaller.class.php.

Se puede utilizar la clase como elemento independiente del API:

<?php
include ‘Core/autoloader.php’; 

try
{
$rc = new Kiwwito/Core/RemoteCaller(‘user@email.com’, ‘password’);

//Llamada a procedimiento remoto
$friends = $rc->getFriendsData(array(
‘fields’ => array(
‘name’,
‘surname’,
‘avatar’,
‘sex’,
‘status’,
‘phone_number’,
‘chat_server’
)
));
print_r($friends);
}
catch (Exception $e)
{
echo ‘Ha ocurrido un error: ‘ . $e->getMessage();
}

POO y listas de objetos:

Absolutamente toda la interfaz sigue la notación Orientado a Objetos con hidratación de datos (conversión de un array plano de datos a objetos complejos). Todos los métodos devuelven objetos de un determinado tipo. Algunos métodos devuelven colecciones de objetos envueltos en una estructura de datos especial: APIObjectList(Core/Object/APIObjectList.class.php). Dicha clase permite filtrar según los atributos de los objetos o seleccionar según un determinado criterio, además implementa la interfaz iterable (Iterator) que permite recorrerla de forma cómoda.

Un ejemplo del uso de este mecanismo es el método getFriends() delBundle (clase principal) del API, dicho método devuelve un APIObjectList que nos permitirá recorrerlo y/o filtrarlo según nos convenga:

<?php
$friends = $tapi->getFriends();
//Seleccionar amigas cuyo nombre sea ‘Clara’
$friendsWithNameClara = $friends->selectByName(‘Clara’);
//Seleccionar amigos cuyo servidor de chat sea ‘xmpp9.tuenti.com’
$friendsWithChatServer9 = $friends->selectByChatServer(‘xmpp9.tuenti.com’); 

//Iteramos por la lista de amigos
foreach ($friends as $friend)
{
echo $friend;
}
//Iteramos por la lista de amigas cuyo nombre sea Clara
foreach ($friendsWithNameClara as $friendC)
{
echo $friendC;
}

Fuente

Una respuesta a «Otra API en PHP para Tuenti (El Proyecto)»

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.