Usar la API de Tumblr con C#

En Desarrollo, Tutoriales y Guías, Webmasters por

En este artículo plantearemos un código en C# en el que usaremos la API de Tumblr para crear un post o artículo.  Tumblr ofrece varias librerías para usar su API con diferentes lenguajes de programación (Ruby, PHP, Python, Java, Javascript y Objective-C) pero ninguna para C#. Yo sólo he probado la de PHP para crear un artículo en el blog de prueba y puedo decir que funciona correctamente, aunque la librería fue algo liosa de instalar ya que nunca antes había lidiado con el administrador automático de dependencias llamado Composer. Pero en este artículo manejaremos la API de Tumblr con C# bajo la plataforma .Net ya que en ningún lado se habla sobre el tema y las librerías disponibles se han quedado obsoletas porque están diseñadas para la versión antigua de la API de Tumblr, que actualmente ya no es funcional.

Usar la API de Tumblr con C#

El código propuesto mostrará el mecanismo para crear un nuevo post o artículo empleando la API de Tumblr. Mientras examinaba la API he podido comprobar que el sistema empleado es prácticamente el mismo que el empleado por la API de Twitter y hasta en algunos casos, la documentación de la API de Tumblr enlaza a la documentación de la API de Twitter. Por este motivo es recomendable tener a mano el artículo de como publicar en Twitter con API y autenticación OAuth C# ya que recurriremos a el para explicar algunas cosas.

La API de Tumblr, al igual que la de Twitter, se basa en el sistema de autenticación Oauth 1.0a por lo que pude reutilizar la mayor parte del código del ejemplo para crear un post en Twitter con la API.

El primer paso es registrar o crear una aplicación en Tumblr.

Como es obvio necesitaremos estar registrados en Tumblr. Una vez registrados y con nuestra cuenta activada debemos ir la página de administración y creación de aplicaciones Tumblr y hacemos click en “Registrar aplicación”. En la nueva pantalla que nos aparece rellenamos los campos: Application name, Application website, Application description, Default callback URL y le damos a “Register”.

Una vez registrada la aplicación se nos mostrarán las llaves consumer key y consumer secret que serán necesarias para autenticarnos en la API.

Otro dato necesario es nuestro base-hostname que no es más que el nombre de nuestro blog Tumblr. Por ejemplo en el blog de prueba que cree para desarrollar esta aplicación es http://zeotest.tumblr.com/ y el base-hostname sería zeotest.tumblr.com. En Tumblr se pueden usar dominios propios, de ser así el base-hostname será el nombre del dominio que está determinado por una entrada CNAME en las DNS.

Ya casi tenemos todos los datos necesarios, nos falta por conseguir el Access Token y el Access Token Secret. Para conseguir estos dos datos hay dos formas:

  • Forma manual: desde la página de administración de aplicaciones en Tumblr hay que hacer click en “Explore API” tal y como se muestra en la siguiente imágen resaltado en rojo:
    Tumblr explore API
    Después se nos mostrará una pantalla que nos pedirá verificar que queremos dar permisos a la aplicación:
    Tumblr autorizar aplicación
    Le damos a «Permitir» y accedemos a la página de la consola donde haremos click en el botón “Show keys” localizado en la parte superior derecha y nos saldrá una ventana emergente con todos los datos necesarios listos para copiar y pegar (las consumer y los tokens).
  • Forma automática: otra forma es hacerlo mediante las peticiones propias de la API para obtener el valor de estos tokens.

Como se trata de un programa de prueba para entender la API yo voy a emplear el método manual para obtener los tokens, pero seguramente en un futuro artículo explicaré como obtener el valor de estos tokens a través de la API ya que es el método más adecuado.

Llegados a este punto deberíamos tener los siguientes datos:

  • Consumer Key
  • Consumer Secret
  • Token
  • Token Secret
  • Base-hostname

Usar la API de Tumblr con C#

Ahora llega el momento de emplear realmente la API de Tumblr cuya documentación en inglés podemos encontrar en el enlace http://www.tumblr.com/docs/en/api/v2

En primer lugar formaríamos la cabecera de autenticación OAuth que no me voy a entretener mucho hablando de ella porque es exactamente igual que la empleada en la API de Twitter y esta bien explicada en el artículo como publicar en Twitter con la API.

La diferencia principal está en que a la hora de crear la oauth_signature hay que tener en cuenta los nuevos parámetros que son:

  • body: es el contenido del artículo.
  • title: e el título del artículo.
  • type: es el tipo de artículo. Tumblr soporta varios tipos de artículos (text, photo, quote, link, chat, audio, video) pero en nuestro caso empleamos texto.
  • URL: la url para crear un artículo es http://api.tumblr.com/v2/blog/base-hostname/post

Después en la petición HTTP con verbo POST también hay que tener en cuenta que la nueva URL es http://api.tumblr.com/v2/blog/zeotest.tumblr.com/post y en los datos enviados a través de POST estarán body, title y type.

Si todo ha ido bien recibiremos una respuesta de la API en formato JSON del tipo:
{"meta":{"status":201,"msg":"Created"},"response":{"id":75903174759}}

La aplicación como siempre es muy sencilla y se adjunta un proyecto programado en C# para Visual Studio 2010 listo para descargar.