miércoles, 29 de junio de 2011

Twitter – La Integración Obligada

Para nadie es una sopresa las miles de herramientas y mecanismos de publicación que hay para Twitter. Aún así, intenté armar un proyecto para entender cómo es que funciona la API de integración de Twitter y, además, poder hacer una aplicación a la medida para las pocas publicaciones que realizo. En mi caso, la idea es construir una mini-aplicación que permita la publicación de un Tweet con un solo click y que me permita evitar el proceso (engorroso a veces) de abrir el browser, ingresar a Twitter, autenticarse, publicar, salir, etc.

La API está perfectamente documentada y es simple entender. En términos simples, el proceso para poder construir una aplicación es el siguiente:

  1. Registrar la aplicación.
  2. Construir la aplicación.
  3. Autorizar la aplicación para que pueda publicar a nombre de un usuario.
  4. Publicar un Tweet de prueba.

A continuación se describen los pasos anteriores.

1. Registrar la Aplicación.
El proceso de registro de la aplicación está destinado a, como su nombre lo indica, registrar la aplicación para hacer uso de la API. Esto es similar al AppStore de Apple en términos que las aplicaciones deben estar registradas, sin embargo, Twitter no provee un mecanismo para buscar y/o recorrer las aplicaciones ya existentes. Como yo no encontré la aplicación que quería, la tuve que hacer así que comencé con el proceso de registro. Para registrar una aplicación hay que acceder a la página de Registro de Aplicaciones. Realizado la autenticación, esta página despliega todas las aplicaciones ya registradas y permite agregar nuevas. La pantalla de registro es como la siguiente:

Twitter.RegisterApp.02

Lo más complejo es la elección del nombre de la aplicación (marcado en Azul) ya que, al igual que los nombres de dominios, están casi todos ocupados.

  • El Tipo de Aplicación (Application Type) indica si la aplicación es de escritorio o web. En el segundo caso, se debe indicar la URL a la que Twitter traspasará el control (Callback) una vez que termine el proceso de autenticación y autorización.
  • El Tipo de Acceso (Default Access Type) indica el tipo de acceso por defecto que se le solicitará al usuario al momento de la autorización.

Terminado el proceso de registro de la aplicación, Twitter entregará un token de acceso (Access Token) que contiene dos llaves únicas que identifican a la aplicación. Estas llaves son el Access Token (oauth_token) y el Access Token Secret (oauth_token_secret). El token de acceso identifica a la aplicación y, por lo tanto, debe ser protegido por el autor para mantenerla bajo su control. El protocolo utilizado por Twitter para hacer la autenticación es el estándar de autenticación OAuth.

2. Construir la Aplicación.
Registrada la aplicación, es necesario construirla. Para esto, obviamente, hay mil alternativas de lenguajes y de bibliotecas. Para este ejemplo, la aplicación será construída en VB.net y será una aplicación de escritorio (Desktop). Las bibliotecas disponibles para cada lenguaje se pueden revisar en la página de bibliotecas, Twitter Libraries.

Para la aplicación, utilizaré la biblioteca TwitterVB. Esta biblioteca tiene todos los métodos de integración con Twitter ya implementados, por lo tanto, se hace muy fácil integrarla a un proyecto existente.

La pantalla principal de la aplicación es como muestra la imágen siguiente. En términos simples, es una ventana que debiera omitir todos los detalles de autenticación y permitir elegir la cuenta de Twitter con la que se desea publicar. Para lograr esto, como revisaremos en el punto siguiente, es fundamental que el proceso de autorización de un usuario a una aplicación persiste en el tiempo.

Twitter.MainForm

3. Autorizar la Aplicación para Publicar a nombre de un Usuario.
El proceso de autorización de una aplicación consiste básicamente en realizar la secuencia para obtener las llaves secretas de autorización del usuario para la aplicación. El código siguiente muestra la secuencia anterior:

Twitter.Source.Link

Los pasos conceptualmente son:

a) Solicitar la página (URL) de autorización del usuario para la aplicación. La URL de autorización es como la siguiente:
http://twitter.com/oauth/authorize?oauth_token=RwcHZJHKshgdkahskwer7khkaasdfHKH

b) Abrir el browser en la página anterior para que el usuario realice el proceso de autorización. Como resultado de este proceso, el usuario deberá identificarse y obtendrá un PIN (Número de Identificación). El PIN es un número como el que se muestra a continuación:

Twitter.Auth.02

c) Recuperar el PIN desde el usuario.

d) Validar el PIN del usuario y recuperar las llaves de la autorización. Las llaves que se obtienen del proceso anterior son dos llaves que se llaman TokenKey y TokenSecret que se ven como sigue:

TokenKey = 177061323-9iPOqWwp9IhFEHN3bTvehjkHGJKJHGhjghghgjHGHGJk3qBtSWI
TokenSecret = 3neRlNafAPgKQBR5sv05Eq6MMhjyHGGTYUHysig

Con la autorización realizada, la aplicación está en condiciones de enviar Tweets a nombre del usuario. Una de las gracias de este mecanismo es que las llaves anteriores son únicas (obviamente) y no cambian en el tiempo. Esto implica que, una vez realizada la autorización y obtenidas las llaves, la aplicación podrá realizar la publicación de Tweets sin necesidad de repetir el proceso de autorización, a menos que el usuario cambie sus preferencias.

4. Publicar un Tweet
La publicación de un Tweet comprende la autenticación en Twitter de la aplicación a nombre del usuario (por medio de las respectivas llaves) y luego enviando el Tweet. El código siguiente muestra la secuencia anterior:

Twitter.Source.Post

Los pasos conceptualmente son:

a) Autenticar en Twitter la aplicación a nombre del usuario utilizando las llaves respectivas, es decir, las llaves de la aplicación y las llaves de la autorización del usuario para la aplicación.

b) Enviar el Tweet!.

c) Al enviar el Tweet! se obtiene un número que identifica la publicación y que puede ser utilizado para eliminar (deshacer) la publicación desde la aplicación.

Lo anterior es sólo un ejemplo de cómo utilizar la API en donde, lo fundamental, es tener claridad sobre el proceso de registro y posterior autorización de una aplicación para permitir realizar los Tweets.

Adicionalmente, Twitter provee otros métodos en la API que permiten recuperar el Timeline, los Seguidores, etc.

No hay comentarios.: