Zend_Service_Twitter proporciona un cliente para la
API de Twitter API.
Zend_Service_Twitter permite consultar la línea temporal pública. Si
proporciona un nombre de usuario y datos de OAuth para Twitter, le permitirá obtener y actualizar
su estado, responder a amigos, enviar mensajes directos a amigos, marcar tuits como favoritos, y
mucho más.
Zend_Service_Twitter envuelve todas las operaciones del
servicio web, incluyendo OAuth, y todos los métodos devuelven una instancia de
Zend_Service_Twitter_Response.
Zend_Service_Twitter está dividido en subsecciones para que pueda
identificar fácilmente qué tipo de llamada se está solicitando.
accountpermite comprobar que las credenciales de su cuenta son válidas.applicationpermite comprobar su límite de peticiones de la API.blocksbloquea y desbloquea usuarios para que no le sigan.directMessagesrecupera los mensajes directos recibidos por el usuario autenticado, elimina mensajes directos, y envía nuevos mensajes directos.favoriteslista, crea y elimina tuits favoritos.friendshipscrea y elimina amistades para el usuario autenticado.searchpermite buscar estados según criterios específicos.statusesrecupera las líneas temporales pública y del usuario, y muestra, actualiza, destruye y recupera respuestas para el usuario autenticado.usersrecupera amigos y seguidores del usuario autenticado y devuelve información extendida sobre un usuario indicado.
A excepción de la obtención de la línea temporal pública,
Zend_Service_Twitter requiere autenticación como usuario
válido. Esto se logra mediante el protocolo de autenticación OAuth. OAuth es
el único modo de autenticación soportado por Twitter desde agosto de 2010. La implementación
de OAuth usada por Zend_Service_Twitter es
Zend_Oauth.
Ejemplo 64.125. Creación de la clase Twitter
Zend_Service_Twitter debe autorizarse a sí mismo, en nombre de un usuario, antes de su uso con la
API de Twitter (excepto para la línea temporal pública). Esto debe realizarse usando OAuth, dado que
Twitter deshabilitó su autenticación básica por HTTP desde agosto de 2010.
Hay dos opciones para establecer la autorización. La primera es implementar el
flujo de trabajo de Zend_Oauth a través de Zend_Service_Twitter
que actúa como proxy hacia un objeto interno Zend_Oauth_Consumer. Consulte
la documentación de Zend_Oauth para un ejemplo completo de este
flujo de trabajo; puede llamar a todos los métodos documentados de Zend_Oauth_Consumer
sobre Zend_Service_Twitter, incluidas las opciones del constructor. También puede
usar Zend_Oauth directamente y pasar únicamente el token de acceso
resultante a Zend_Service_Twitter. Este es el flujo de trabajo normal
una vez que ha establecido un token de acceso reutilizable para un usuario de Twitter en particular. El token
de acceso OAuth resultante debe guardarse en una base de datos para uso futuro (de lo contrario, necesitará
autorizar cada nueva instancia de Zend_Service_Twitter). Tenga en cuenta
que la autorización mediante OAuth implica que su usuario sea redirigido a Twitter para dar su
consentimiento a la autorización solicitada (esto no se repite para los tokens de acceso almacenados). Esto
requerirá trabajo adicional (es decir, redirigir usuarios y alojar una URL de retorno) en comparación con el
mecanismo de autenticación HTTP anterior, donde un usuario solo
necesitaba permitir que las aplicaciones almacenaran su nombre de usuario y contraseña.
El siguiente ejemplo muestra cómo configurar Zend_Service_Twitter
al que se le proporciona un token de acceso OAuth ya establecido. Consulte la documentación de Zend_Oauth
para comprender el flujo de trabajo involucrado. El token de acceso es un objeto serializable, por lo que puede
almacenar el objeto serializado en una base de datos, y deserializarlo al recuperarlo antes de pasar los objetos
a Zend_Service_Twitter. La documentación de Zend_Oauth
muestra el flujo de trabajo y los objetos involucrados.
/**
* We assume $serializedToken is the serialized token retrieved from a database
* or even $_SESSION (if following the simple Zend_Oauth documented example)
*/
$token = unserialize($serializedToken);
$twitter = new Zend_Service_Twitter(array(
'accessToken' => $token
'oauth_options' => array(
'username' => 'johndoe',
),
));
// verify user's credentials with Twitter
$response = $twitter->account->verifyCredentials();
![]() |
Nota |
|---|---|
|
Para poder autenticarse con Twitter, TODAS las aplicaciones DEBEN estar registradas con Twitter para recibir una Consumer Key y un Consumer Secret que se usarán al autenticarse con OAuth. Esto no puede reutilizarse entre varias aplicaciones; debe registrar cada nueva aplicación por separado. Los tokens de acceso de Twitter no tienen fecha de caducidad, por lo que se recomienda guardarlos en una base de datos (pueden, por supuesto, renovarse simplemente repitiendo el proceso de autorización de OAuth). Esto solo puede hacerse mientras se interactúa con el usuario asociado a ese token de acceso.
La versión anterior a OAuth de |
Si ha registrado una aplicación con Twitter, también puede usar el token de acceso y el secreto del token de acceso que le proporcionan para configurar el consumidor OAuth. Esto puede hacerse de la siguiente manera:
$twitter = new Zend_Service_Twitter(array(
'access_token' => array( // or use "accessToken" as the key; both work
'token' => 'your-access-token',
'secret' => 'your-access-token-secret',
),
'oauth_options' => array( // or use "oauthOptions" as the key; both work
'consumerKey' => 'your-consumer-key',
'consumerSecret' => 'your-consumer-secret',
),
));
Si lo desea, también puede especificar una instancia concreta de cliente HTTP a usar, o proporcionar
configuración para el cliente HTTP. Para proporcionar el cliente HTTP, use la clave
http_client o httpClient, y proporcione una
instancia. Para proporcionar la configuración del cliente HTTP para crear una instancia, use la clave
http_client_options o httpClientOptions. Como
ejemplo completo:
$twitter = new Zend_Service_Twitter(array(
'access_token' => array( // or use "accessToken" as the key; both work
'token' => 'your-access-token',
'secret' => 'your-access-token-secret',
),
'oauth_options' => array( // or use "oauthOptions" as the key; both work
'consumerKey' => 'your-consumer-key',
'consumerSecret' => 'your-consumer-secret',
),
'http_client_options' => array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
),
));
-
rateLimitStatus()devuelve el número restante de peticiones a la API disponibles para el usuario autenticado antes de alcanzar el límite de la API en la hora actual.Ejemplo 64.127. Estado del límite de peticiones
$twitter = new Zend_Service_Twitter($options); $response = $twitter->application->rateLimitStatus(); $userTimelineLimit = $response->resources->statuses->{'/statuses/user_timeline'}->remaining;
-
create()bloquea al usuario especificado en el parámetroidcomo el usuario autenticado y destruye una amistad con el usuario bloqueado si existe alguna. Devuelve el usuario bloqueado cuando tiene éxito.Ejemplo 64.128. Bloqueo de un usuario
$twitter = new Zend_Service_Twitter($options); $response = $twitter->blocks->create('usertoblock');
-
destroy()desbloquea al usuario especificado en el parámetroidpara el usuario autenticado. Devuelve el usuario desbloqueado en el formato solicitado cuando tiene éxito.Ejemplo 64.129. Eliminación de un bloqueo
$twitter = new Zend_Service_Twitter($options); $response = $twitter->blocks->destroy('blockeduser');
-
ids()devuelve un array de identificadores de usuario que el usuario autenticado está bloqueando.Ejemplo 64.130. A quién está bloqueando (solo identificadores)
$twitter = new Zend_Service_Twitter($options); $response = $twitter->blocks->ids();
-
list()devuelve un array de objetos de usuario que el usuario autenticado está bloqueando.Ejemplo 64.131. A quién está bloqueando
$twitter = new Zend_Service_Twitter($options); $response = $twitter->blocks->list();
-
messages()devuelve una lista de los 20 mensajes directos más recientes enviados al usuario autenticado.Ejemplo 64.132. Obtención de los mensajes directos recibidos recientemente
$twitter = new Zend_Service_Twitter($options); $response = $twitter->directMessages->messages();
El método
messages()acepta un array de parámetros opcionales para modificar la consulta.since_idrestringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).max_idrestringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.countespecifica el número de estados a devolver, hasta 200.skip_status, cuando se establece en booleano true, "t", o 1, omitirá incluir el estado más reciente de un usuario en los resultados.include_entitiescontrola si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.
-
sent()devuelve una lista de los 20 mensajes directos más recientes enviados por el usuario autenticado.Ejemplo 64.133. Obtención de los mensajes directos enviados recientemente
$twitter = new Zend_Service_Twitter($options); $response = $twitter->directMessages->sent();
El método
sent()acepta un array de parámetros opcionales para modificar la consulta.countespecifica el número de estados a devolver, hasta 20.pageespecifica la página de resultados a devolver, según elcountproporcionado.since_idrestringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).max_idrestringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.include_entitiescontrola si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.
-
new()envía un nuevo mensaje directo al usuario especificado desde el usuario autenticado. Requiere tanto el parámetro de usuario como el de texto indicados abajo.Ejemplo 64.134. Envío de un mensaje directo
$twitter = new Zend_Service_Twitter($options); $response = $twitter->directMessages->new('myfriend', 'mymessage');
-
destroy()destruye el mensaje directo especificado en el parámetro requeridoid. El usuario autenticado debe ser el destinatario del mensaje directo especificado.Ejemplo 64.135. Eliminación de un mensaje directo
$twitter = new Zend_Service_Twitter($options); $response = $twitter->directMessages->destroy(123548);
-
list()devuelve los 20 estados favoritos más recientes del usuario autenticado o del usuario especificado por el parámetrouser_idoscreen_name.Ejemplo 64.136. Obtención de favoritos
$twitter = new Zend_Service_Twitter($options); $response = $twitter->favorites->list();
El método
list()acepta un array de parámetros opcionales para modificar la consulta.user_idespecifica el ID del usuario para el que se devolverá la línea temporal.screen_nameespecifica el nombre de usuario del usuario para el que se devolverá la línea temporal.since_idrestringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).max_idrestringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.countespecifica el número de estados a devolver, hasta 200.include_entitiescontrola si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.
-
create()marca como favorito el estado especificado en el parámetroidcomo el usuario autenticado.Ejemplo 64.137. Creación de un favorito
$twitter = new Zend_Service_Twitter($options); $response = $twitter->favorites->create(12351);
-
destroy()elimina de favoritos el estado especificado en el parámetroidcomo el usuario autenticado.Ejemplo 64.138. Eliminación de favoritos
$twitter = new Zend_Service_Twitter($options); $response = $twitter->favorites->destroy(12351);
-
create()establece amistad con el usuario especificado en el parámetroidcon el usuario autenticado.Ejemplo 64.139. Creación de un amigo
$twitter = new Zend_Service_Twitter($options); $response = $twitter->friendships->create('mynewfriend');
-
destroy()finaliza la amistad entre el usuario especificado en el parámetroidy el usuario autenticado.Ejemplo 64.140. Eliminación de un amigo
$twitter = new Zend_Service_Twitter($options); $response = $twitter->friendships->destroy('myoldfriend');
-
tweets()devuelve una lista de tuits que coinciden con el criterio especificado en$query. Por defecto, se devolverán 15, pero este valor puede cambiarse usando la opcióncount.Ejemplo 64.141. Búsqueda de tuits
$twitter = new Zend_Service_Twitter($options); $response = $twitter->search->tweets('#zendframework');El método
tweets()acepta un segundo argumento opcional, un array de parámetros opcionales para modificar la consulta.since_idrestringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).max_idrestringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.countespecifica el número de estados a devolver, hasta 200.include_entitiescontrola si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.langindica el código de idioma de dos letras al que restringir los resultados.localeindica el código de idioma de dos letras que se está usando en la consulta.geocodepuede usarse para indicar el radio geográfico en el que deben originarse los tuits; la cadena debe tener la forma "latitude,longitude,radius", donde "radius" es una unidad seguida de uno de "mi" o "km".result_typeindica qué tipo de resultados obtener, y debe ser uno de "mixed", "recent" o "popular".untilpuede usarse para especificar la fecha más reciente para la que se devolverán tuits.
-
sample()devuelve los 20 estados más recientes de usuarios no protegidos con un icono de usuario personalizado. La línea temporal pública se almacena en caché en Twitter durante 60 segundos.Ejemplo 64.142. Obtención de la línea temporal pública
$twitter = new Zend_Service_Twitter($options); $response = $twitter->statuses->sample();
-
homeTimeline()devuelve los 20 estados más recientes publicados por el usuario autenticado y por los amigos de ese usuario.Ejemplo 64.143. Obtención de la línea temporal de inicio
$twitter = new Zend_Service_Twitter($options); )); $response = $twitter->statuses->homeTimeline();
El método
homeTimeline()acepta un array de parámetros opcionales para modificar la consulta.since_idrestringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).max_idrestringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.countespecifica el número de estados a devolver, hasta 200.trim_user, cuando se establece en booleano true, "t", o 1, listará solo el identificador del autor en los objetos de usuario incluidos en los estados devueltos.contributor_details, cuando se establece en booleano true, devolverá el nombre de usuario de cualquier colaborador de un estado (en lugar de solo el identificador del colaborador).include_entitiescontrola si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.exclude_repliescontrola si se devuelven o no las actualizaciones de estado que son respuestas a otros estados.
-
userTimeline()devuelve los 20 estados más recientes publicados por el usuario autenticado.Ejemplo 64.144. Obtención de la línea temporal del usuario
$twitter = new Zend_Service_Twitter($options); $response = $twitter->statuses->userTimeline();
El método
userTimeline()acepta un array de parámetros opcionales para modificar la consulta.user_idespecifica el ID del usuario para el que se devolverá la línea temporal.screen_nameespecifica el nombre de usuario del usuario para el que se devolverá la línea temporal.since_idrestringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).max_idrestringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.countespecifica el número de estados a devolver, hasta 200.trim_user, cuando se establece en booleano true, "t", o 1, listará solo el identificador del autor en los objetos de usuario incluidos en los estados devueltos.contributor_details, cuando se establece en booleano true, devolverá el nombre de usuario de cualquier colaborador de un estado (en lugar de solo el identificador del colaborador).include_rtscontrola si se incluyen o no los retuits nativos en la lista devuelta.exclude_repliescontrola si se devuelven o no las actualizaciones de estado que son respuestas a otros estados.
-
show()devuelve un único estado, especificado por el parámetroidindicado abajo. El autor del estado se devolverá en línea.Ejemplo 64.145. Mostrar el estado de un usuario
$twitter = new Zend_Service_Twitter($options); $response = $twitter->statuses->show(1234);
-
update()actualiza el estado del usuario autenticado. Este método requiere que pase la actualización de estado que desea publicar en Twitter.Ejemplo 64.146. Actualización del estado de un usuario
$twitter = new Zend_Service_Twitter($options); $response = $twitter->statuses->update('My Great Tweet');El método
update()acepta un segundo parámetro adicional.inReplyToStatusIdespecifica el ID de un estado existente al que responde el estado que se va a publicar.
-
mentionsTimeline()devuelve las 20 @respuestas más recientes (actualizaciones de estado prefijadas con @nombredeusuario) para el usuario autenticado.Ejemplo 64.147. Mostrar las respuestas de un usuario
$twitter = new Zend_Service_Twitter($options); $response = $twitter->statuses->mentionsTimeline();
El método
mentionsTimeline()acepta un array de parámetros opcionales para modificar la consulta.since_idrestringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).max_idrestringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.countespecifica el número de estados a devolver, hasta 200.trim_user, cuando se establece en booleano true, "t", o 1, listará solo el identificador del autor en los objetos de usuario incluidos en los estados devueltos.contributor_details, cuando se establece en booleano true, devolverá el nombre de usuario de cualquier colaborador de un estado (en lugar de solo el identificador del colaborador).include_entitiescontrola si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.
-
destroy()destruye el estado especificado por el parámetro requeridoid.Ejemplo 64.148. Eliminación del estado de un usuario
$twitter = new Zend_Service_Twitter($options); $response = $twitter->statuses->destroy(12345);
-
show()devuelve información extendida de un usuario dado, especificado por ID o nombre de usuario según el parámetro requeridoidindicado abajo.Ejemplo 64.149. Mostrar información de un usuario
$twitter = new Zend_Service_Twitter($options); $response = $twitter->users->show('myfriend');
-
search()buscará usuarios que coincidan con la consulta proporcionada.Ejemplo 64.150. Búsqueda de usuarios
$twitter = new Zend_Service_Twitter($options); $response = $twitter->users->search('Zend');El método
search()acepta un array de parámetros opcionales para modificar la consulta.countespecifica el número de estados a devolver, hasta 20.pageespecifica la página de resultados a devolver, según elcountproporcionado.include_entitiescontrola si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.
![[Note]](images/note.png)