Come costruire una foto Twitter Bot di Twitter con Raspberry Pi e Node.js
Cerchi un modo per rendere Twitter più utile, se non altro per altre persone? Un modo è creare un bot automatizzato di Twitter che tweets le immagini con descrizioni utili. Potresti farlo manualmente ... oppure potresti costruirlo con Node.js e ospitarlo su un Raspberry Pi. Continua a leggere per scoprire come.
Perché costruire un Bot di Twitter?
Se sei mai stato su Twitter e hai visto account che pubblicano foto, o fatti, o cartoni animati, ecc., Allora è molto probabile che questi siano automatizzati. È un ottimo modo per creare un pubblico di persone interessate allo stesso argomento.
Ma c'è un'altra ragione, al di là dei retweet e dei seguiti. Costruire un bot su Twitter ti insegnerà alcune utili capacità di programmazione. Abbiamo già visto come creare un bot di base su Twitter con Python Come costruire un Bot di Twitter Raspberry Pi Come costruire un Twitter Bot di Raspberry Pi Twitter è il più grande repository mondiale di brevi messaggi di persone che non hanno nulla da dire - e ora tu anche tu puoi contribuire a quel progetto epico con un bot automatizzato di Twitter, alimentato dal tuo Raspberry ... Leggi di più (anche su un Raspberry Pi), ma questa volta stiamo adottando un approccio diverso.
In questo progetto, useremo Node.js per costruire un bot di tweeting fotografico su un Raspberry Pi. Le foto saranno foto della prima guerra mondiale, accompagnate da una breve frase e attribuzione). Queste informazioni saranno archiviate in un array, un database di base Che cos'è un database, comunque? [MakeUseOf Explains] Quindi, che cos'è un database, comunque? [MakeUseOf Explains] Per un programmatore o un appassionato di tecnologia, il concetto di un database è qualcosa che può davvero essere dato per scontato. Tuttavia, per molte persone il concetto stesso di database è un po 'estraneo ... Per saperne di più .
Inizia: crea il tuo database
Se vuoi creare un bot di tweeting fotografico, devi iniziare raccogliendo le immagini che desideri condividere. Queste dovrebbero essere le tue immagini, o quelle che hai acquisito sotto un Creative Commons o qualche altra licenza open source.
Si dovrebbe anche tenere nota dell'attribuzione e di altre informazioni che si desidera andare con le immagini. Torneremo su queste informazioni in seguito, una volta che il bot è attivo e funzionante.
Installa Node.js su Raspbian
Inizia installando Node.js. Dovresti già avere un Raspberry Pi installato e funzionante, con Raspbian installato Come installare un sistema operativo sul tuo Raspberry Pi Come installare un sistema operativo sul tuo Raspberry Pi Ecco come ottenere un nuovo sistema operativo installato e funzionante sul tuo Pi - e come per clonare la configurazione perfetta per un rapido ripristino di emergenza. Leggi di più . Per questo progetto, raccomandiamo un Raspberry Pi 2 o successivo; il progetto è stato testato su Raspberry Pi 3 B + Come decidere se hai bisogno del nuovo modello Raspberry Pi 3 B + Come decidere se hai bisogno del nuovo Raspberry Pi 3 B + Model È stato rilasciato il nuovo Raspberry Pi 3 B +. Quanto costa, quali specifiche rigide ha e migliorerà i tuoi progetti esistenti? Abbiamo delle risposte. Leggi di più .
Nel terminale (o tramite SSH VNC, SSH e HDMI: tre opzioni per visualizzare il tuo Raspberry Pi VNC, SSH e HDMI: tre opzioni per visualizzare il tuo Raspberry Pi Il Raspberry Pi è un piccolo computer notevole, ma può richiedere molto tempo per impostare in alto e collegarlo al monitor. Per saperne di più), aggiornare l'elenco dei pacchetti di sistema e aggiornare alla versione più recente:
sudo apt-get update sudo apt-get dist-upgrade
Segui la richiesta sullo schermo e attendi che il tuo Pi sia aggiornato. Al termine, riavviare con
sudo reboot
Quando hai finito, usa curl per scaricare Node.js:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Quindi, installalo con
sudo apt-get install -y nodejs
Al termine, eseguire un controllo per assicurarsi che il software sia stato installato correttamente. Il modo più semplice è verificare il numero di versione:
nodo -v
La risposta dovrebbe essere qualcosa come v8.11.3 (o superiore). Se vedi qualcosa del genere, puoi essere certo che Node.js è pronto per l'uso.
Costruisci il tuo Bot di Twitter
Il prossimo passo è inserire il codice che creerà il bot. Inizia creando una directory:
mkdir twitterbot
Quindi, cambialo nella nuova directory del tuo bot:
cd twitterbot
Qui, crea un file chiamato server.js
sudo nano server.js
In questo file, inserisci una singola riga:
console.log ('Io sono un bot di Twitter!');
stampa Ctrl + X per salvare ed uscire, quindi eseguire lo script:
nodo '/home/pi/twitterbot/server.js'
Questo dovrebbe restituire la frase “Sono un bot di Twitter!”. Ora che hai confermato che funziona, è ora di installare la libreria Twit con npm (il Node Package Manager). Assicurarsi che questo sia installato inserendo:
npm -v
Di nuovo, dovresti vedere un numero di versione visualizzato.
Segui questo con:
npm init
Ciò inizia chiedendo informazioni sull'app Node.js che stai creando. Vengono visualizzate le opzioni predefinite (come questa) in modo da poter semplicemente toccare Invio per accettarle. Puoi anche scegliere di inserire i tuoi dettagli. Una volta terminata questa configurazione, ti verrà chiesto di confermare i dettagli con “sì”.
Il prossimo passo è installare il modulo Twit dal npm.
npm install twit --save
Attendere il download dei file nella sottodirectory node_modules. Una volta fatto, apri nuovamente il file server.js in nano.
sudo nano server.js
Qui, elimina il comando che hai inserito in precedenza, sostituendolo con:
var fs = require ('fs'), percorso = require ('percorso'), Twit = require ('twit'), config = require (path.join (__ dirname, 'config.js'));
Salva ed esci come prima.
Crea un'app di Twitter
Per creare un bot funzionante su Twitter, devi creare un'applicazione per Twitter. Questa è una procedura semplice, che richiede di registrarsi per la prima volta su un nuovo account Twitter. Nota che questo richiede anche un numero di telefono per verificare l'account, e una volta fatto questo, vai su developer.twitter.com per creare l'app.
Se non si dispone di un account sviluppatore, questo potrebbe richiedere del tempo, poiché è necessaria una certa quantità di moduli. Questo è un passo che Twitter ha intrapreso per evitare lo spam, quindi prenditi il tuo tempo e rispondi alle domande in modo accurato.
Clic Crea un'app, e aggiungere i dettagli come richiesto. Al momento della scrittura, il sistema di sviluppo è in fase di revisione, quindi potrebbe essere necessario attendere alcuni giorni (e rispondere ad alcune domande aggiuntive).
Quindi, passare a Chiavi e gettoni scheda e sotto permessi trovare la Permesso di accesso e assicurarsi che sia impostato su Leggere e scrivere (uso modificare altrimenti). Quindi passa a Chiavi e token e prendi nota di quanto segue:
- Chiave del consumatore
- Segreto dei consumatori
Sotto token di accesso, fare clic su Creare generare:
- Token di accesso
- Accesso token segreto
Queste sono le chiavi API che ti serviranno per dare accesso al bot al tuo account Twitter.
Torna alla riga di comando, crea config.js in nano:
sudo nano config.js
Aggiungi il seguente
var config = consumer_key: 'XXXXX', consumer_secret: 'XXXXX', access_token: 'XXXXX', access_token_secret: 'XXXXX' module.exports = config;
Dove legge 'XXXXX', sostituisci i tuoi dettagli chiave API corrispondenti.
Salva ed esci, quindi apri server.js.
sudo nano server.js
Qui, aggiungi le seguenti righe alla fine del file:
var T = new Twit (config); T.post ('statuses / update', status: 'My first tweet!', Function (err, data, response) console.log (data));
Dovrebbe sembrare come questo:
Di nuovo, salva ed esci, quindi nella riga di comando, inserisci
nodo server.js
Apri il tuo account Twitter nel browser per vedere i risultati:
Hai confermato che il bot sta twittando, quindi è ora di dargli qualcosa da fare!
Crea la tua cartella di immagini
Per inviare tweet alle foto, copia le immagini raccolte in una cartella (generalmente denominata immagini). Inizia con una dozzina circa.
Quindi, torna al documento server.js:
sudo nano server.js
Qui, rimuovi il codice che ha inviato il tweet, la riga che inizia con T.post ('statuses / update').
Quindi, sostituirlo con una funzione, chiamata random_from_array. Questo sceglierà un'immagine a caso dalla cartella delle immagini.
function random_from_array (images) return images [Math.floor (Math.random () * images.length)];
Dopo averlo fatto, dovrai aggiungere una seconda funzione, upload_random_image:
function upload_random_image (images) console.log ('Apertura di un'immagine ...'); var image_path = path.join (__ dirname, '/ images /' + random_from_array (images)), b64content = fs.readFileSync (image_path, encoding: 'base64'); console.log ('Caricamento di un'immagine ...'); T.post ('media / upload', media_data: b64content, funzione (err, data, response) if (err) console.log ('ERRORE:'); console.log (err); else console.log ('Immagine caricata!'); console.log ('Ora twittalo ...'); T.post ('statuses / update', media_ids: new Array (data.media_id_string), funzione (err, dati , response) if (err) console.log ('ERRORE:'); console.log (err); else console.log ('Inserita un'immagine!');););
Questa funzione seleziona un'immagine a caso dalla cartella delle immagini e, una volta selezionata, viene caricata su Twitter utilizzando l'API media / upload.
Successivamente, aggiungi il seguente codice. Questo troverà la directory delle immagini e prenderà un'immagine da essa, pubblicandone una a caso ogni 60 secondi. È possibile (e dovrebbe) modificare questa temporizzazione, che è rappresentata nel codice con la figura 60000. Sono preferibili intervalli più lunghi.
setInterval (function () upload_random_image (images);, 60000); );
Salva questo con Ctrl + X, quindi Sì per salvare. (Puoi trovare il codice completo per questo progetto su GitHub).
Un uso singolo del nodo server.js il comando chiederà quindi alle foto di iniziare a twittare! (Se è necessario terminare i post, premere Ctrl + Z per cancellare lo script server.js.)
Aggiunta di testo ai tweet della tua foto
Se è necessario aggiungere del testo alle immagini, è possibile utilizzare un array. La matrice farà riferimento ai nomi dei file delle immagini ed elencherà il testo che dovrebbe essere aggiunto. Ad esempio, potresti aggiungere l'attribuzione alle immagini che non hai preso. O potresti aggiungere alcuni fatti o una citazione.
Inizia creando images.js
sudo nano images.js
Qui, aggiungi il seguente codice. Questa è una matrice, con due elementi, file e origine. Questi contengono il nome del file dell'immagine e l'attribuzione (in genere un URL).
var images = [file: 'image0001.png', fonte: 'http://www.example.com/image0001.png', file: 'image0002.png', fonte: 'http: // www. example.com/image0002.png ',]
Ripeti se necessario per ogni immagine, quindi termina il file images.js con:
module.exports = images;
Salva e chiudi il file, quindi apri di nuovo server.js e aggiungilo all'elenco delle variabili:
images = require (path.join (__ dirname, 'images.js'));
Salva ed esci, quindi riavvia il bot di Twitter con nodo server.js comando ancora una volta.
Puoi anche usare il “fonte” campo per includere del testo, spiegando lo sfondo dell'immagine. Questo può essere incluso insieme all'URL.
Il tuo primo Bot su Twitter, pronto per essere riutilizzato!
A questo punto, dovresti avere un bot di Twitter con auto-pubblicazione attivo e funzionante, condividendo foto, fatti e attributi sul tuo argomento specifico.
Per riassumere, il processo è:
- Colleziona le tue foto
- Installa Node.js
- Costruisci il tuo bot di Twitter
- Richiedi lo stato di sviluppatore su Twitter
- Crea un'app di Twitter
- Aggiungi un array di attribuzione
- Inizia a twittare!
Forse la cosa migliore di questo è che il codice può essere usato per twittare foto, fatti e attributi letteralmente su qualsiasi argomento.
Vuoi sapere quali altri robot potresti eseguire con una configurazione simile? Controlla la nostra lista dei migliori progetti di bot di Twitter per Raspberry Pi 10 I migliori progetti Bot di Twitter per Raspberry Pi 10 I migliori progetti per Bot di Twitter per Raspberry Pi Ulteriori informazioni !
Scopri di più su: Esercitazioni sui progetti fai-da-te, JavaScript, Raspberry Pi, Twitter.