Come costruire un Bot di Twitter Raspberry Pi

Twitter è il repository più grande al mondo di messaggi brevi di persone che non hanno nulla da dire - e ora anche tu puoi contribuire a quel progetto epico con un bot di Twitter automatizzato, basato sul tuo Raspberry Pi. Sto scherzando, naturalmente - alcune persone in realtà tweettano cose interessanti. Io non sono uno di loro però - io uso il mio mio per la promozione di prodotti spudorati in cambio di roba gratis, voci di concorso e auto-pubblicazione di nuovi episodi del nostro Podcast Technophilia.

Twitter è il repository più grande al mondo di messaggi brevi di persone che non hanno nulla da dire - e ora anche tu puoi contribuire a quel progetto epico con un bot di Twitter automatizzato, basato sul tuo Raspberry Pi.  Sto scherzando, naturalmente - alcune persone in realtà tweettano cose interessanti.  Io non sono uno di loro però - io uso il mio mio per la promozione di prodotti spudorati in cambio di roba gratis, voci di concorso e auto-pubblicazione di nuovi episodi del nostro Podcast Technophilia.
Annuncio pubblicitario

Twitter è il repository più grande al mondo di messaggi brevi di persone che non hanno nulla da dire - e ora anche tu puoi contribuire a quel progetto epico con un bot di Twitter automatizzato, basato sul tuo Raspberry Pi. Sto scherzando, naturalmente - alcune persone in realtà tweettano cose interessanti Come usare Twitter per cercare mentori nella tua area di interesse Come usare Twitter per cercare mentori nella tua area di interesse Nel mondo reale, un mentore è saggio insegnante che supporta e guida qualcuno e li aiuta a massimizzare il proprio potenziale. Nel mondo online, saresti molto fortunato a trovare qualcuno che ... Leggi altro. Io non sono uno di loro però - io uso il mio mio per la promozione di prodotti spudorati in cambio di roba gratis, voci di concorso e auto-pubblicazione di nuovi episodi del nostro Podcast Technophilia. Qualunque cosa - i miei seguaci mi amano!

@ w0lfiesmith Odio il tuo account Twitter. Così tanto.

- Justin Pot (@jhpot), 21 agosto 2013

Ora aggiungo all'utilità del mio flusso personale di Twitter facendo in modo che un Raspberry Pi tweet automaticamente la sua temperatura attuale della CPU ogni ora e un'immagine della webcam!

Iniziare

Questo progetto usa Python; un linguaggio di programmazione semplice, ideale per progetti fai-da-te. Inizieremo installando Twython sul Pi - un modulo Python per l'interfacciamento con Twitter; configurare un'applicazione "Twitter" per ottenere una chiave API; poi vai a fare il tweet di Pi per conto nostro. Sarà così divertente!

Lo sto facendo su Raspian - ma in teoria dovrebbe funzionare su qualsiasi SO basato su Linux che hai sui sistemi operativi Pi 10 Puoi eseguire con i sistemi operativi Raspberry Pi 10 Puoi eseguire con Raspberry Pi L'hardware del solo Raspberry Pi è solo un lato della storia: oggi esploro 10 diversi sistemi operativi che puoi installare. Leggi di più . Se non lo hai già fatto, assicurati di configurare SSH in modo da poter accedere in remoto ed eseguire i comandi della console.

Installazione di Twython

È una buona idea eseguire prima gli aggiornamenti. Copia e incolla i seguenti comandi uno alla volta: la maggior parte richiede una conferma.

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

Registrazione di un'app Twitter

Per utilizzare l'API di Twitter, ovvero l'interfaccia REST che utilizzeremo per pubblicare nuovi tweet e in generale interagire con Twitter all'esterno del sito Web di Twitter, sarà necessario registrare una nuova app. Da questo link: non è necessario specificare un URL di richiamata e creare un sito Web, se lo si desidera.

new-twitter-app

Vedrai qualcosa di simile a questo una volta che hai finito - queste chiavi sono uniche per te.

Twitter-app

Per impostazione predefinita, l'app è impostata in sola lettura, quindi non saremo in grado di pubblicare tweet senza modificarlo in lettura e scrittura . Vai alla scheda Impostazioni e cambia il tipo di applicazione .

readwrite-accesso

Una volta salvato, torna alla scheda Dettagli e fai clic sul pulsante in basso per creare un token di accesso OAuth : ciò consente alla tua applicazione di accedere al tuo account Twitter. Aggiorna e lascia aperta la pagina per dopo - dovremo copiare incollare alcune di quelle chiavi in ​​un minuto.

token di accesso

Crea il tuo progetto Python

Inizia creando una nuova directory per ospitare il tuo progetto Tweet, quindi crea un nuovo file.

 mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Puoi chiamarlo come preferisci, ovviamente.

Nell'editor di testo che appare, copia e incolla quanto segue, sostituendo la chiave utente con la chiave pertinente dalla pagina dell'applicazione Twitter che abbiamo lasciato aperta in precedenza. Ogni chiave è circondata da virgolette singole, quindi assicurati di non perdere quelle. Nota che ACCESS_KEY è indicato come token di accesso nella pagina dell'app di 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]) 

Premi Ctrl-X e premi Y per uscire e salvare il file. Rendilo eseguibile con il seguente comando (sostituendo il nome del tuo file Python se hai scelto qualcos'altro)

 sudo chmod +x SillyTweeter.py 

Ora dovresti essere in grado di testare la tua capacità di pubblicare tweet in questo modo:

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

Ciao a tutti, questo è il mio Raspberry Pi che ti tweeting più sciocchezze

- James Bruce (@ w0lfiesmith), 29 agosto 2013

Twittare la tua CPU Temp

Ora che puoi postare qualsiasi sciocchezza gentile che vuoi, aggiustiamo l'app per afferrare la temperatura attuale della CPU, perché sarò dannato se il mondo non ha bisogno di sapere che ogni ora.

Inizia aggiungendo un'altra importazione per la libreria os:

 import os 

Quindi aggiungi le seguenti righe, sostituendo il precedente api.update_status dell'esempio precedente.

 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') 

Non spiegherò troppo questo codice perché non ha molta importanza: esegue un comando che cattura la temperatura, quindi divide l'output per estrarre il numero e lo tweet con un messaggio personalizzato. Puoi trovare il codice di esempio completo qui.

Tweeting Webcam Pics

Ora facciamo qualcosa di veramente utile; stiamo andando a twittare foto in webcam. Fortunatamente, Twython supporta la funzione API update_status_with_media, il che rende le cose piuttosto semplici.

Collegare una webcam USB al dispositivo e verificare se è stata riconosciuta con il comando:

 ls /dev/video* 

se vedi video0, sei fortunato. Ho usato una PSEye per Playstation 3 e ha funzionato bene senza alcun ulteriore gioco di gambe.

Useremo anche le librerie pygame per fare una foto; aggiungi le seguenti righe subito dopo le istruzioni di importazione esistenti:

 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"') 

In breve, hai inizializzato la webcam con una risoluzione specifica (potrebbe essere necessario regolare questa è una vecchia camma), ha scattato una foto e salvata come jpg. Stiamo solo andando a sovrascrivere la stessa webcam.jpg" ogni volta che viene eseguita l'app.

Infine, aggiusta la riga update_status per leggere:

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

Ovviamente, se lo desideri, puoi cambiare di nuovo il testo di stato con la temperatura attuale della CPU. Il codice completo per questo esempio è qui.

I miei giochi di ruolo tweeting le immagini ora => pic.twitter.com/NfUgLnWQtm

- James Bruce (@ w0lfiesmith), 29 agosto 2013

Puoi ripeterlo?

Un bot di Twitter è utile solo se viene eseguito più volte, automaticamente; non vuoi stare seduto lì a eseguire il comando ogni ora. Per ottenere questo, utilizziamo la funzione di pianificazione CRON di Pi (Che cos'è un lavoro CRON? Automatizza il tuo Backup di Wordpress con Scripting semplice di shell e CRON Automatizza il tuo Backup di Wordpress con Scripting di shell semplice e CRON L'ultima volta che abbiamo parlato dei backup di Wordpress, ti ho mostrato come incredibilmente facile è stato il backup dell'intero database e dei file tramite SSH con solo pochi comandi, questa volta mostrerò ... Per saperne di più)

 sudo crontab -e 

Incolla in questa linea, per eseguire ogni ora.

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

Passa a * * * * * se desideri che venga eseguito ogni minuto e preparati a perdere follower più velocemente di un account Twitter che perde rapidamente i follower.

Questo è per oggi. Sono felice di aver contribuito con più stupidità alla vasta ricchezza di byte inutili su Internet, e spero che lo faccia anche tu! Mostra il tuo apprezzamento per questo tutorial twittandolo, e poi facci sapere di che cosa parlerà nei tuoi commenti il ​​tuo bot di Twitter.

Credito immagine: adafruit / flickr

In this article