Importación de Contactos de Gmail mediante Zend Framework
| octubre 7, 2009 | Posted by laura under Programación |
En el post de hoy voy a hablar sobre la importación de contactos de Gmail y os presentaré una pequeña solución que utiliza tokens de seguridad en vez de la introducción de cuenta y contraseña de los usuarios. Es una solución funcional, ya que aún está por maquetar y generalizar pero prefiero publicarla antes de que se me olvide. Por temas de trabajo debo dejarla un poco de lado.
El Zend Framework no da soporte a la API de Google Contacts, de momento, así que parte del trabajo que se había realizado para la integración de Youtube y Picasa no servía de mucho -en principio-. He leído en algún foro del Framework que se está trabajando en este nuevo módulo de Zend_GData, pero aún no hay una fecha de salida. Llegados a este punto, no ha quedado más remedio que pasar unas cuantas horas navegando por la red para poder encontrar alguna solución.
La primera de ellas apareció en este post. Después de realizar nuevas clases y aprender un poco el funcionamiento de algunas funciones cUrl, no he conseguido hacerla funcionar finalmente por temas de autentificación y el token de seguridad. Estoy a la espera de recibir un mensaje del desarrollador a ver si nos puede echar una mano en el asunto.
La segunda de ellas apareció de una idea que tuve relacionada con el siguiente post. Del sistema que ya se había montado para Youtube y Picasa se podían añadir unas nuevas operaciones al objeto Zend_GData:
$gdata = new Zend_Gdata($client);
$query = new Zend_Gdata_Query(“http://www.google.com/m8/feeds/contacts/$username/full”);
$feed = $gdata->getFeed($query);
$entries = $gdata->retrieveAllEntriesForFeed($feed);
En nuestro sistema, $client sería un objeto del tipo Zend_Gdata_HttpClient al que le hacemos un set de las cabeceras necesarias para la conexión con los sistemas Google, las llaves privadas y el token de seguridad provisto. Para más información sobre esto, podéis consultar el post de Xavi dónde se explica el proceso que seguimos para sincronizar con Youtube y Picasa. Os comparto el código del método que nos genera dicho objeto $cliente:
private function getClient($singleUseToken){
$fclient = new Zend_Gdata_HttpClient();
$fclient->setHeaders(“X-GData-Key: key=”.’google_key’);
$fclient->setAuthSubPrivateKeyFile(‘path-to-keys’,null, true);
$sessionToken = Zend_Gdata_AuthSub::getAuthSubSessionToken(trim($singleUseToken),$fclient);
$fclient->setAuthSubToken($sessionToken);
return $fclient;
}
Para terminar os comparto el siguiente enlace que será la tercera solución que probaremos. Como se puede ver, es una clase llamada Open Inviter escrita en PHP5 que permite importar contactos de diferentes cuentas y aplicaciones.
Vamos allá!!!
Un saludo desde pingüinos y manzanitas world!
[...] que hemos tenido de generar un XML con la lista de contactos de la que hablábamos el otro día (aquí y aquí), y el lenguaje escogido es el que utilizamos normalmente: PHP. El método que os [...]
[...] que hemos tenido de generar un XML con la lista de contactos de la que hablábamos el otro día (aquí y aquí), y el lenguaje escogido es el que utilizamos normalmente: PHP5. El método que os [...]