Creación de Bots en Twitter para IoT con Python y Tweepy
Resumen
¿Cómo configuramos una cuenta de desarrollador en Twitter?
Antes de comenzar con la creación de bots en Twitter, es fundamental contar con una cuenta de desarrollador aprobada. Esta aplicación puede llevar alrededor de un día para ser confirmada después de su solicitud. Los pasos para solicitar esta cuenta son:
Completa el formulario en developer.twitter.com con una descripción detallada sobre el propósito de tu bot.
Explica cómo manipularás los datos de Twitter y qué tipo de información compartirás.
Si planeas usar una cuenta separada para tu bot, crea primero esta nueva cuenta de Twitter y luego solicita los permisos de desarrollador.
Al completar estos pasos, podrás avanzar a la configuración y desarrollo de tus aplicaciones conectadas con Twitter.
¿Cómo configuramos un bot en Twitter?
Para empezar a crear tu bot en Twitter, primero necesitas:
Crear una nueva aplicación que se ligará a tu cuenta de Twitter.
Proporcionar una descripción clara, indicando la ubicación y el propósito de los tuits generados por tu bot.
Ajustar cualquier extensión o configuración extra necesaria para los desarrolladores de Twitter.
Acordar con las políticas de datos de Twitter para regular las automatizaciones de tu bot, dado que Twitter tiene límites sobre la cantidad de tuits que pueden enviarse diariamente.
Generación de keys y tokens
Despues de crear la aplicación, es necesario generar las keys y tokens de acceso. Estos proporcionarán los permisos de escritura y lectura necesarios para operar con la API de Twitter. Estos elementos son cruciales y deberán ser exportados e incluidos en un script de configuración.
# Comandos para copiar y exportar las keys generadas por TwitterexportTWITTER_CONSUMER_KEY="tu_api_key"exportTWITTER_CONSUMER_SECRET="tu_api_secret"exportTWITTER_ACCESS_TOKEN="tu_access_token"exportTWITTER_ACCESS_SECRET="tu_access_secret"
¿Cómo configuramos la Raspberry Pi?
Ya establecida la cuenta de desarrollador y generados los keys y tokens, es tiempo de configurar la Raspberry Pi donde correrá el bot.
Inicia sesión SSH en tu Raspberry Pi.
Modifica el archivo de profile para incluir tus keys y tokens de Twitter.
Asegúrate de tener instalados los paquetes necesarios, como twipi para integrar Twitter y requests para conectarse a dispositivos IoT.
Verifica que estás usando una versión compatible de Python, idealmente Python 3.6 o superior.
Configuración del environment
Es importante que las keys y tokens de acceso estén correctamente almacenados en el entorno:
# Abre el archivo de profile y agrega tus keysnano ~/.profile
# Pega las líneas de export correspondientessource ~/.profile
¿Cómo implementamos el código del bot?
Con todos los elementos preparados, el siguiente paso es trabajar en el script del bot. Serás guiado a través de:
La importación de los paquetes necesarios:
os
twipi
requests
time y datetime (disponibles por defecto)
La obtención y autenticación de keys a través de Twipi.
La creación de funciones para consultar los datos de los sensores.
Configurar el mensaje que el bot publicará automáticamente. Este mensaje debe incluir:
Datos de temperatura, humedad, y polución recogidos de los dispositivos IoT.
Marcar con tiempo preciso cada entrada (año, mes, día, hora, minuto, segundo).
# Ejemplo de código para el mensaje del botmensaje =(f"Temperatura promedio: {average_temperature}°C\n"f"Humedad promedio: {average_humidity}%\n"f"Polución promedio: {average_pollution} ppm\n"f"Tiempo de registro: {time_good}")api.update_status(mensaje)
¿Qué herramientas adicionales se deben considerar?
Finalmente, asegúrate que las herramientas adicionales y scripts de prueba están listos para ser utilizados. Esto incluye la ejecución de scripts para verificar la versión de Python y demás configuraciones esenciales que aseguran el correcto funcionamiento del bot. Con todos los elementos en marcha, estarás preparado para automatizar y mantener tu proyecto de IoT con Twitter.
nano .profilecat .profilepip install tweepy
sudo apt-get install python-requests
cd Code/ls
python3
sh Python\ Upgrade.shnano bot.py
En ves de usar twitter es posible con un servidor propio usando una api rest o websocket's?
Si, si es posible.
No logro ejecutar el programa con el comando: ./bot.py
Sino con python bot.py, con este comando ejecuta sin errores
Acorde al link
debido a que no se ha creado por defecto un ambiente virtualpor default está la versión 2.7 de python por lo que se debe ejecutar todo como python3 o pip3 incluso al instalar tweepy pip3 install tweepy.
python3 -u ./bot.py
Intenta con eso
Medio complicada la clase pero se entendió
No encuentro el PythonVersion.sh :( donde está?
Hola. Vamos a revisar y publicar el archivo lo más pronto posible.
Que tal Jason, lo conseguiste?
He llegado hasta aqui sin contar ni con la PI ni ninguno de los dispositivos ya que queria ver hasta donde era entendible el curso, y pues me doy cuenta que requiero ciertas cuestiones en Python, y Arduino para estas clases nada de lo otro mundo, pero si fuera por mi parte creo que serian cuestiones de base. Este video aun no lo implemento y si llego a perderme un poco en esta parte y entiendo el objetivo pero siento que me pasa de largo la explicacion y la implementacion.
5/08/2022
Segun mi experiencia, para que tweeter me permita publicar el tweet me solicitó un Acceso Elevado ("Elevated access"), ya que con el accesso Escencial (Esscencial) no era suficiente. Para solicitar el cambio debes darle click a la opcion "Apply" que esta debajo, como esta en la imagen. Obviamente tienes que aplicar a "Elevated access".
Luego, tendrás que responder unas preguntas. En mi caso hasta tuve que responder algunas preguntas por gmail a Twitter develpment Accounts. Finalmente accedió y ahora recién se ejecutó mi código correctamente.
Espero este dato les ahorre las canas verdes que me sacó el que no corriera mi código 😂
Para copiar los archivos desde tu máquina host a tu raspberry por ssh puedes usar el siguiente comando:
Si estás usando gmail suite, acá una entrada de ejemplo de como hacerlo con la api de google (el de arriba es más generico, este es el que te recomienda google)
A mi me la liberó instantáneamente, prueba quizás diciendo que no utilizarás la información de twitter para absolutamente nada
A mi nunca me llegó correo de confirmación, pero acabo de entrar a la parte de Twitter Developers con mi cuenta e intenté crear de nuevo la app y ya me permitió y brindó las Keys.
En esta clase se abordó la creación de bots en Twitter para IoT utilizando Python y la biblioteca Tweepy. Se explicó cómo aplicar para una cuenta de desarrollador en Twitter, configurar tokens de acceso y crear un bot que publique datos sobre la calidad del aire, temperatura y humedad. Además, se revisó el código necesario para autenticar el bot y realizar publicaciones automáticas mediante un script en Raspberry Pi. Esta clase es fundamental para integrar dispositivos IoT y redes sociales de manera efectiva.
¿es posible usar otros lenguajes de programación? ¿cualquiera?
De qué manera puedo almacenar los datos censados en una hoja de cálculo?
seria posible en de usar twitter hacerlo en facebook o en otra red social?
Si, cada red social tiene su propia API, busca su apartado de developer. :)
Sí, es posible "tweetear" directamente desde una ESP (Espressif) como la ESP8266 o ESP32 utilizando la API de Twitter. Para ello, necesitas configurar la conexión Wi-Fi en la ESP y utilizar una biblioteca como Tweepy para autenticarte y enviar tweets. El proceso implica obtener las claves de la API de Twitter y utilizarlas en tu código de la ESP para enviar datos de sensores, por ejemplo, de manera automática.
Super bien explicado y ejemplificado
Sería interesante tener un poco de documentación respecto a la librería tweepy para también tener un poco de respaldo sobre lo que estamos haciendo al momento de incluir esa librería!
no está el archivo..
Está dos clase atrás
La clase está en el video anterior, subieron un post antes de esta clase donde indican que hace cada cosa :D