Cómo construir un Bot de Twitter Raspberry Pi

Twitter es el repositorio más grande del mundo de mensajes cortos de personas sin nada que decir, y ahora tú también puedes contribuir a ese proyecto épico con un robot de Twitter automatizado, impulsado por tu Raspberry Pi. Estoy bromeando, por supuesto, algunas personas realmente tuitean cosas interesantes. Aunque no soy uno de ellos, utilizo mi mina para una promoción desvergonzada de productos a cambio de material gratuito, entradas de la competencia y publicación automática de nuevos episodios de nuestro propio podcast de Technophilia.

Twitter es el repositorio más grande del mundo de mensajes cortos de personas sin nada que decir, y ahora tú también puedes contribuir a ese proyecto épico con un robot de Twitter automatizado, impulsado por tu Raspberry Pi.  Estoy bromeando, por supuesto, algunas personas realmente tuitean cosas interesantes.  Aunque no soy uno de ellos, utilizo mi mina para una promoción desvergonzada de productos a cambio de material gratuito, entradas de la competencia y publicación automática de nuevos episodios de nuestro propio podcast de Technophilia.
Anuncio

Twitter es el repositorio más grande del mundo de mensajes cortos de personas sin nada que decir, y ahora tú también puedes contribuir a ese proyecto épico con un robot de Twitter automatizado, impulsado por tu Raspberry Pi. Estoy bromeando, por supuesto, algunas personas realmente twittean cosas interesantes Cómo usar Twitter para buscar mentores en su área de interés Cómo usar Twitter para buscar mentores en su área de interés En el mundo real, un mentor es un sabio profesor que apoya y guía a alguien, y los ayuda a maximizar su potencial. En el mundo en línea, sería muy afortunado de encontrar a alguien que lo haga ... Leer más. Aunque no soy uno de ellos, utilizo mi mina para una promoción desvergonzada de productos a cambio de material gratuito, entradas de la competencia y publicación automática de nuevos episodios de nuestro propio podcast de Technophilia. Lo que sea - mis seguidores me aman!

@ w0lfiesmith odio tu cuenta de Twitter. Tanto.

- Justin Pot (@jhpot) 21 de agosto de 2013

Ahora voy a aumentar la utilidad de mi transmisión de Twitter personal al hacer que una Raspberry Pi twittee automáticamente la temperatura actual de su CPU cada hora, ¡y una imagen de webcam!

Empezando

Este proyecto usa Python; un lenguaje de programación simple ideal para proyectos de bricolaje. Comenzaremos por instalar Twython en el módulo Pi - a Python para interactuar con Twitter; configurar una "aplicación" de Twitter para obtener una clave API; luego ve a hacer las cosas de Pi Tweets en nuestro nombre. Va a ser muy divertido!

Estoy haciendo esto en Raspian, pero en teoría debería funcionar en cualquier sistema operativo basado en Linux que tengas en los sistemas operativos Pi 10 que puedes ejecutar con Raspberry Pi 10 Sistemas operativos que puedes ejecutar con Raspberry Pi El hardware de la Raspberry Pi solo es solo un lado de la historia: hoy exploro 10 sistemas operativos diferentes que puedes instalar. Lee mas . Si aún no lo has hecho, asegúrate de configurar SSH para que podamos iniciar sesión de forma remota y ejecutar los comandos de la consola.

Instalando Twython

Es una buena idea ejecutar actualizaciones primero. Copie y pegue los siguientes comandos de uno en uno: la mayoría requerirá confirmación.

sudo apt-get update sudo apt-get upgrade sudo apt-get install python-setuptools sudo easy_install pip sudo pip install twython 

Registrando una aplicación de Twitter

Para poder usar la API de Twitter, es decir, la interfaz REST que usaremos para publicar nuevos Tweets y generalmente interactuar con Twitter desde el sitio web de Twitter, necesitaremos registrar una nueva aplicación. Haga eso desde este enlace: no necesita especificar una URL de devolución de llamada, y simplemente crear un sitio web si lo desea.

new-twitter-app

Verá algo parecido a esto una vez que haya terminado: estas teclas son únicas para usted.

twitter-app

De forma predeterminada, la aplicación está configurada como de solo lectura, por lo que no podremos publicar tweets sin cambiar eso a Lectura y Escritura . Vaya a la pestaña Configuración y cambie el tipo de Aplicación .

readwrite-access

Una vez guardado, vuelva a la pestaña Detalles y haga clic en el botón de la parte inferior para crear un token de acceso OAuth : esto le permite a su aplicación acceder a su propia cuenta de Twitter. Actualice y deje la página abierta para más tarde; necesitaremos copiar y pegar algunas de esas teclas en un minuto.

acceso-token

Crea tu proyecto de Python

Comience creando un nuevo directorio para albergar su proyecto de Tweet, luego cree un nuevo archivo.

 mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Puedes llamarlo como quieras, obviamente.

En el editor de texto que aparece, copie y pegue lo siguiente, reemplazando la clave de consumidor con la clave relevante de la página de la aplicación de Twitter que dejamos abierta anteriormente. Cada tecla está rodeada por comillas simples, así que asegúrese de no perderlas. Tenga en cuenta que ACCESS_KEY se denomina token de acceso en la página de la aplicación de Twitter.

 #!/usr/bin/env python import sys from twython import Twython CONSUMER_KEY = '***************YOUR DATA*****************' CONSUMER_SECRET = '***************YOUR DATA*****************' ACCESS_KEY = '***************YOUR DATA*****************' ACCESS_SECRET = '***************YOUR DATA*****************' api = Twython(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status(status=sys.argv[1]) 

Presiona Ctrl-X, y presiona Y para salir y guardar el archivo. Hazlo ejecutable con el siguiente comando (reemplazando tu nombre de archivo Python si eliges otra cosa)

 sudo chmod +x SillyTweeter.py 

Ahora debería poder probar su capacidad para publicar tweets de la siguiente manera:

 python SillyTweeter.py 'Hello Everyone, this is my Raspberry Pi tweeting you more nonsense' 

Hola a todos, este es mi Raspberry Pi twitteando más tonterías

- James Bruce (@ w0lfiesmith) 29 de agosto de 2013

Twittear su temperatura de CPU

Ahora que puedes publicar cualquier tontería que desees, ajustamos la aplicación para obtener la temperatura actual de la CPU, porque me condenarían si el mundo no necesita saber eso cada hora.

Comience por agregar otra importación para la biblioteca de os:

 import os 

A continuación, agregue las siguientes líneas, reemplazando la anterior api.update_status del ejemplo anterior.

 cmd = '/opt/vc/bin/vcgencmd measure_temp' line = os.popen(cmd).readline().strip() temp = line.split('=')[1].split("'")[0] api.update_status(status='My current CPU temperature is '+temp+' C') 

No explicaré demasiado este código porque realmente no importa: ejecuta un comando que capta la temperatura, luego divide el resultado para extraer el número y lo twittea con un mensaje personalizado. Puede encontrar el código de ejemplo completo aquí.

Twittear fotos de la webcam

Ahora hagamos algo realmente útil; vamos a twittear las fotos de la webcam. Afortunadamente, Twython admite la función API update_status_with_media, lo que hace que las cosas sean bastante simples.

Conecte una cámara web USB en su dispositivo y verifique si ha sido reconocido con el comando:

 ls /dev/video* 

si ves video0, estás de suerte. Utilicé una cámara PSEye Playstation 3 y funcionó perfectamente sin ningún trabajo adicional.

También vamos a usar las bibliotecas de pygame para tomar una foto; agregue las siguientes líneas justo después de las declaraciones de importación existentes:

 import pygame import pygame.camera from pygame.locals import * pygame.init() pygame.camera.init() cam = pygame.camera.Camera("/dev/video0", (640, 480)) cam.start() image = cam.get_image() pygame.image.save(image, 'webcam.jpg"') 

En resumen, has inicializado la cámara web a una resolución específica (es posible que tengas que ajustar esta es una cámara muy vieja), tomaste una foto y la guardaste como un jpg. Solo vamos a sobrescribir la misma webcam.jpg" cada vez que se ejecute la aplicación.

Finalmente, ajuste la línea update_status para leer:

 photo = open('webcam.jpg"', 'rb') api.update_status_with_media(media=photo, status='My RPi be tweeting images now =>') 

Por supuesto, puede cambiar el texto de estado a la temperatura actual de su CPU nuevamente, si lo desea. El código completo para este ejemplo está aquí.

Mi RPi estaría twitteando imágenes ahora => pic.twitter.com/NfUgLnWQtm

- James Bruce (@ w0lfiesmith) 29 de agosto de 2013

¿Puede repetir eso?

Un bot de Twitter solo es útil si se ejecuta varias veces, automáticamente; no querrás estar sentado corriendo el comando cada hora. Para lograr esto, utilicemos la función de programación CRON de Pi (¿Qué es un trabajo CRON? Automatice su copia de seguridad Wordpress con Simple Shell Scripting y CRON Automatice su copia de seguridad Wordpress con Simple Shell Scripting y CRON La última vez que hablamos sobre copias de seguridad de Wordpress, le mostré cómo increíblemente fácil fue hacer una copia de seguridad de toda su base de datos y archivos a través de SSH con solo unos pocos comandos. Esta vez, voy a mostrar ... Leer más)

 sudo crontab -e 

Pegue en esta línea, para ejecutar cada hora.

 */60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py 

Cambie eso a * * * * * si desea que se ejecute cada minuto, y prepárese para perder seguidores más rápido que una cuenta de Twitter que pierda seguidores rápidamente.

Eso es por hoy. Estoy feliz de haber contribuido con más tonterías a la gran cantidad de bytes inútiles en Internet, ¡y espero que tú también! Demuestre su aprecio por este tutorial twitteando, y luego déjenos saber de qué va a twittear su propio bot de Twitter en los comentarios.

Crédito de la imagen: adafruit / flickr

In this article