TigerZF
🌐Español

64.32. Zend_Service_Twitter

64.32.1. Introducción

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.

  • account permite comprobar que las credenciales de su cuenta son válidas.

  • application permite comprobar su límite de peticiones de la API.

  • blocks bloquea y desbloquea usuarios para que no le sigan.

  • directMessages recupera los mensajes directos recibidos por el usuario autenticado, elimina mensajes directos, y envía nuevos mensajes directos.

  • favorites lista, crea y elimina tuits favoritos.

  • friendships crea y elimina amistades para el usuario autenticado.

  • search permite buscar estados según criterios específicos.

  • statuses recupera las líneas temporales pública y del usuario, y muestra, actualiza, destruye y recupera respuestas para el usuario autenticado.

  • users recupera amigos y seguidores del usuario autenticado y devuelve información extendida sobre un usuario indicado.

64.32.2. Autenticación

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();

[Note] 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 Zend_Service_Twitter permitía pasar un nombre de usuario como primer parámetro en lugar de dentro de un array. Esto ya no es soportado.

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',
    ),
));

64.32.3. Métodos de cuenta

  • verifyCredentials() comprueba si las credenciales de usuario proporcionadas son válidas con una sobrecarga mínima.

    Ejemplo 64.126. Verificación de credenciales

    $twitter  = new Zend_Service_Twitter($options);
    $response = $twitter->account->verifyCredentials();
    

64.32.4. Métodos de aplicación

  • 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;
    

64.32.5. Métodos de bloqueo

  • create() bloquea al usuario especificado en el parámetro id como 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ámetro id para 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();
    

64.32.6. Métodos de mensajes directos

  • 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_id restringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).

    • max_id restringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.

    • count especifica 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_entities controla 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.

    • count especifica el número de estados a devolver, hasta 20.

    • page especifica la página de resultados a devolver, según el count proporcionado.

    • since_id restringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).

    • max_id restringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.

    • include_entities controla 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 requerido id. 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);
    

64.32.7. Métodos de favoritos

  • list() devuelve los 20 estados favoritos más recientes del usuario autenticado o del usuario especificado por el parámetro user_id o screen_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_id especifica el ID del usuario para el que se devolverá la línea temporal.

    • screen_name especifica el nombre de usuario del usuario para el que se devolverá la línea temporal.

    • since_id restringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).

    • max_id restringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.

    • count especifica el número de estados a devolver, hasta 200.

    • include_entities controla si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.

  • create() marca como favorito el estado especificado en el parámetro id como 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ámetro id como el usuario autenticado.

    Ejemplo 64.138. Eliminación de favoritos

    $twitter  = new Zend_Service_Twitter($options);
    $response = $twitter->favorites->destroy(12351);
    

64.32.8. Métodos de amistad

  • create() establece amistad con el usuario especificado en el parámetro id con 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ámetro id y el usuario autenticado.

    Ejemplo 64.140. Eliminación de un amigo

    $twitter  = new Zend_Service_Twitter($options);
    $response = $twitter->friendships->destroy('myoldfriend');
    

64.32.9. Métodos de búsqueda

  • 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ón count.

    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_id restringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).

    • max_id restringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.

    • count especifica el número de estados a devolver, hasta 200.

    • include_entities controla si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.

    • lang indica el código de idioma de dos letras al que restringir los resultados.

    • locale indica el código de idioma de dos letras que se está usando en la consulta.

    • geocode puede 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_type indica qué tipo de resultados obtener, y debe ser uno de "mixed", "recent" o "popular".

    • until puede usarse para especificar la fecha más reciente para la que se devolverán tuits.

64.32.10. Métodos de estado

  • 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_id restringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).

    • max_id restringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.

    • count especifica 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_entities controla si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.

    • exclude_replies controla 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_id especifica el ID del usuario para el que se devolverá la línea temporal.

    • screen_name especifica el nombre de usuario del usuario para el que se devolverá la línea temporal.

    • since_id restringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).

    • max_id restringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.

    • count especifica 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_rts controla si se incluyen o no los retuits nativos en la lista devuelta.

    • exclude_replies controla si se devuelven o no las actualizaciones de estado que son respuestas a otros estados.

  • show() devuelve un único estado, especificado por el parámetro id indicado 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.

    • inReplyToStatusId especifica 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_id restringe los resultados devueltos únicamente a aquellos estados posteriores al identificador especificado (hasta 24 horas de antigüedad).

    • max_id restringe los resultados devueltos únicamente a aquellos estados anteriores al identificador especificado.

    • count especifica 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_entities controla si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.

  • destroy() destruye el estado especificado por el parámetro requerido id.

    Ejemplo 64.148. Eliminación del estado de un usuario

    $twitter  = new Zend_Service_Twitter($options);
    $response = $twitter->statuses->destroy(12345);
    

64.32.11. Métodos de usuario

  • show() devuelve información extendida de un usuario dado, especificado por ID o nombre de usuario según el parámetro requerido id indicado 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.

    • count especifica el número de estados a devolver, hasta 20.

    • page especifica la página de resultados a devolver, según el count proporcionado.

    • include_entities controla si se devuelven o no las entidades, que incluyen URLs, usuarios mencionados y hashtags.