Twittear desde .NET

 

Twitter

Twitter se ha convertido en uno de los más importantes sucesos de la web en los últimos años, al punto de tener demasiados usuarios registrados que lo han vuelto una parte de su vida cotidiana. Con el auge de twitter, ha crecido el número de clientes que hacen uso de sus API para interactuar.

Clientes de todo tipo han surgido: desktop, web, mobile. Así mismo, se ha dado la integración de twitter con diversas aplicaciones, lo cual lo convierte en un valor agregado en muchas ocasiones. En este artículo veremos un sencillo ejemplo de como interactuar con twitter desde una aplicación de escritorio hecha en Visual Studio .NET para postear mensajes a través de la librería Twitterizer.

 

1.0 - El primer paso: registrar una aplicación en twitter

Para esto ingresamos a http://twitter.com/apps y allí damos click en el enlace de registrar una nueva aplicación.
Aquí, se desplegará un formulario donde debemos llenar unos datos básicos acerca de nuestra aplicación a desarrollar.

Image634170503647641450

 

Después de registrar nuestra aplicación de prueba, obtendremos unos datos que serán necesarios para que ella interactúe con Twitter.

 Image634170504817641450

 

1.2 - Autenticación y autorización desde las aplicaciones cliente

Antes de seguir, es necesario entender el concepto que usa twitter para la autenticación y autorización desde las aplicaciones cliente. Desde hace algún tiempo se viene usando el sistema de autenticación Oauth, un protocolo abierto que provee una API de autenticación segura, y que evita la manipulación directa de nombres de usuarios y contraseñas en las aplicaciones clientes, delegando esta tarea en el API de Twitter.

Image634170505804203950

 

El uso de este tipo de autenticación, implica que la aplicación llame a una URL de Twitter para la autenticación, y desde allí pueden suceder dos cosas. Si el cliente Twitter es web, se puede configurar una URL de redirección donde sea devuelto el usuario después de autenticarse, y si el cliente twitter es de escritorio, en la autenticación se obtienen unos códigos que servirán para que el usuario pueda usar el cliente.

1.3 - Comenzamos creando una nueva aplicación de Windows en Visual Studio .NET.

Image634170506789828950

En el archivo de configuración de la aplicación .NET se almacenan los siguientes datos de registro de la aplicación proporcionados por Twitter que son necesarios para interactuar con su API.

   1: <appSettings>



   2: <add key="ConsumerKey" value="wCFelyCNbaQHaWmkPsuFg" />



   3: <add key="ConsumerSecret" value="UQ2kGIDoTzKHWiGK1doudyhdZihIgCv62merGHEyus" /></appSettings>






Luego estos dos datos serán leídos en el archivo de configuración desde la aplicación. Posteriormente, agregamos un formulario con dos botones y dos cuadros de texto.



Image634170509020297700 



El primer botón, será para hacer un login en twitter y obtener el pin de acceso con el cual enviaremos los datos desde la aplicación. La URL a la cual se debe redirigir al usuario se obtiene desde Twitter, y para eso usamos básicamente el siguiente método:





   1: ///



   2: /// Obtiene datos requeridos para obtener el pin de usuario



   3: ///



   4: public DatosAutenticacion ObtenerDatosPinUsuario()



   5: {



   6: DatosAutenticacion datos = new DatosAutenticacion();



   7: try



   8: {



   9: OAuthTokenResponse requestAccessTokens = OAuthUtility.GetRequestToken(this.ConsumerKey, this.ConsumerSecret);



  10: datos.Token = requestAccessTokens.Token;



  11: datos.UrlPin = OAuthUtility.BuildAuthorizationUri(requestAccessTokens.Token).AbsoluteUri;



  12: }



  13: catch (Exception)



  14: {



  15: throw;



  16: }



  17: return datos;



  18: }




 



Posteriormente, los dos cuadros de texto son para ingresar el PIN que obtenemos en la URL que provee Twitter y después de loguearnos en ella con nuestra cuenta de usuario, y el otro cuadro de texto para el mensaje de prueba.



Finalmente, un botón para enviar el mensaje después de ingresados los datos, y ese envío se hace usando los dos siguientes métodos.




   1:  ///


   2:  /// Obtiene datos del usuario de twitter


   3:  ///


   4:  public DatosAutenticacion ObtenerDatosUsuarioTwitter(string


tokenUsuario, string pinUsuario)


   5:  {


   6:  DatosAutenticacion datos = new DatosAutenticacion();


   7:  try


   8:  {


9: OAuthTokenResponse accessTokens = OAuthUtility.GetAccessToken

(this.ConsumerKey, this.ConsumerSecret, tokenUsuario, pinUsuario);



  10:  datos.Token = accessTokens.Token;


  11:  datos.TokenSecreto = accessTokens.TokenSecret;


  12:  datos.IdUsuario = accessTokens.UserId;


  13:  datos.Nombre = accessTokens.ScreenName;


  14:  }


  15:  catch (Exception)


  16:  {


  17:  throw;


  18:  }


  19:  return datos;


  20:  }


  21:   


  22:  ///


  23:  /// Actualiza un estado en la cuenta de usuario


  24:  ///


  25:  public void ActualizarEstado(DatosAutenticacion datosUsuario,


string mensaje)


  26:  {


  27:  try


  28:  {


  29:  OAuthTokens authTokens = new OAuthTokens()


  30:  {


  31:  ConsumerKey = this.ConsumerKey,


  32:  ConsumerSecret = this.ConsumerSecret,


  33:  AccessToken = datosUsuario.Token,


  34:  AccessTokenSecret = datosUsuario.TokenSecreto


  35:  };


  36:  TwitterStatus.Update(authTokens, mensaje);


  37:  }


  38:  catch (Exception)


  39:  {


  40:  throw;


  41:  }


  42:  }


 







    Descargar los fuentes completos del ejemplo: http://www.mediafire.com/file/z9q3p47536luepp/TweetNet.zip (172.54 KB)



    Referencias para este artículo:


    http://code.google.com/p/twitterizer/


    http://oauth.net/



    Información extraída de:


    http://blog.avanet.org/2010/08/postear-en-twitter-desde-net.html

    Entradas populares de este blog

    Trinity Rescue Kit: Tutorial para eliminar la contraseña de administrador en Windows

    Cómo extraer el handshake WPA/WPA2 de archivos de captura grandes

    Cambiar el idioma de Windows XP de inglés al español sin formatear