Utilizar Twitter dentro de tu aplicación

Versión: 2.x, 3.x.

Introducción

Ronda una gran variedad de paquetes que permiten comunicarse con la API de Twitter y actualizar tu estado, realizar búsquedas, enviar mensajes directos, y muchas más.

Como era de esperarse, la API de Twitter utiliza OAuth, un estándar diseñado exclusivamente para la «autenticación segura». La información es transmitida utilizando el formato JSON, una alternativa a XML, un objeto similar a los diccionarios de Python que implementan la notación clave-valor, pero originario del lenguaje JavaScript. Sin embargo y por suerte, no debes preocuparte por comprender todo el funcionamento, a menos que estés realmente interesado en ello, ya que módulos como twitter, python-twitter, tweepy, y demás, logran una abstracción en donde los conocimientos del lenguaje Python es lo único necesario para utilizar la API.

Particularmente he experimentado únicamente con twitter (así está nombrado el paquete) y python-twitter. Ambos son fáciles de utilizar y aprender. Usuarios de Google App Engine no encontrarán problemas al correrlo en el entorno; para evitar errores del módulo ssl, recuerden incluir en el archivo app.yaml:

libraries:
- name: ssl
version: latest

Es a elección del lector seleccionar un módulo para trabajar con la API que les resulte cómodo o más agradable. En mi caso utilizo actualmente twitter.

Como requisito para poder acceder a las funciones de Twitter desde Python, es necesario contar con cuatro claves (generalmente llamadas tokens), dos correspondientes a la aplicación y otras dos al usuario. Ésta será la forma en que vuestro paquete de Twitter permitirá autenticarlos para poder operar normalmente.

Registrar la aplicación

En primer lugar es necesario, lógicamente, tener una cuenta en twitter.com. De no ser así, crea una, y luego dirígete a apps.twitter.com para registrar y administrar nuestra aplicación. Una vez allí, inicia la sesión con tu usuario de Twitter.

Vista previa

Esto será lo que se presentará en pantalla en caso de no tener ninguna aplicación registada. Por ende, presiona en el botón Create New App. Se mostrará un formulario para ingresar los datos correspondientes. A modo de ejemplo, utilizo una supuesta aplicación de Recursos Python para twittear actualizaciones diarias sobre el sitio.

Vista previa

El campo Callback URL lo dejaremos en blanco y, en caso de no tener una web para tu aplicación, ingresa algún dato para rellenar. Al terminar, veremos el panel de control.

Vista previa

Puedes acceder a las preferencias (Settings) para completar algunos datos más.

Sin más, vamos a dirigirnos a la pestaña Keys and Access Tokens.

Vista previa

En pantalla estarás viendo, en primer lugar, las dos claves de tu aplicación. Tal como se indica, éstas deben mantenerse en secreto para evitar que alguien más pueda utilizarlas. En caso de hacerse públicas, puedes volver a generarlas utilizando el botón Regenerate Consumer Key and Secret.

Desplegando la página hacia abajo se encuentran las claves de autenticación de tu usuario. Si aún no han sido generadas, presiona en el botón Create my access token.

Vista previa

Hecho esto, se mostrarán tus dos claves para dicha aplicación.

Vista previa

Nuevamente, deben mantenerse ocultas para evitar que alguien utilice tu cuenta de Twitter.

Por último, la pestaña Permissions permite configurar los permisos de tu aplicación: leer; leer y escribir; leer, escribir y acceder a los mensajes directos. Para poder escribir tweets desde Python deberás asignar la opción Read and Write. Nótese que luego de una modificación a los permisos, deben regenerarse las claves de usuario.

Vista previa

Puede que algunos usuarios obtengan un error al intentar cambiar los permisos, solicitando que la cuenta esté asociada con un número de teléfono móvil. Para evitar ingresarlo, intenta acceder al panel de control de tu aplicación desde la aplicación de Twitter para Android o iOS, o bien desde la versión móvil de twitter.com.

Twitteando desde Python

Ya hemos registrado nuestra aplicación, ahora es momento de implementarla. En un nuevo archivo de Python, recomiendo definir las siguientes constantes que representarán nuestros datos de autenticación.

TOKEN = "300465104-dcrYLsy96jTPKeNO7D7SeRXToJECplBZjZwMOpCL"
SECRET_TOKEN = "z9QEqZUjdPystyeF3xwkKDD5XThcWHgUd9HuzChOOo1Be"
CONSUMER_KEY = "dJTf7IliGGYeUixdqKTnF08B9"
SECRET_CONSUMER_KEY = "mGwAdK3jT5935GnVlOk1PLntCXAJBGT66N48hLuDz69QhdaK4I"

Los datos son, respectivamente y de acuerdo al nombre provisto por el panel de control de la aplicación, Access Token, Access Token Secret, Consumer Key (API Key) y Consumer Secret (API Secret).

Al estar usando el módulo twitter, a continuación importo las clases necesarias.

from twitter import Twitter, OAuth
 
Luego, creo una instancia de la clase Twitter e indico las claves de autenticación a través de la clase OAuth.

t = Twitter(auth=OAuth(TOKEN, SECRET_TOKEN, CONSUMER_KEY,
                       SECRET_CONSUMER_KEY))

Finalmente, envío un tweet.

t.statuses.update(status="Hola, Twitter!")
 
Para obtener mi cronología, utilizo:

t.statuses.home_timeline()
 
Y para enviar un mensaje directo:

t.direct_messages.new(user="yocuentonumeros",
                      text="Hola desde Python!")

Un proceso fácil y eficaz, lo hemos logrado en unos pocos minutos. Más ejemplos en la página de PyPI del módulo.

Curso online 👨‍💻

¡Ya lanzamos el curso oficial de Recursos Python en Udemy! Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter en 2024.

Consultoría 💡

Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.

Deja una respuesta