Inizia con Node.js e crea un bot Twitter che twitta foto e informazioni usando solo un Raspberry Pi!

Come costruire una foto Twitter Twitter Bot con Raspberry Pi e Node.js

Annuncio pubblicitario Cerchi un modo per rendere Twitter più utile, anche se solo per altre persone? Un modo è quello di creare un bot Twitter automatico che tweetta le immagini con descrizioni utili. Potresti farlo manualmente ... o potresti costruirlo con Node.js e ospitarlo su un Raspberry Pi. Continua a leggere per scoprire come.

Annuncio pubblicitario

Cerchi un modo per rendere Twitter più utile, anche se solo per altre persone? Un modo è quello di creare un bot Twitter automatico che tweetta le immagini con descrizioni utili. Potresti farlo manualmente ... o potresti costruirlo con Node.js e ospitarlo su un Raspberry Pi. Continua a leggere per scoprire come.

Perché costruire un bot di Twitter?

Tweet su foto con un bot

Se sei mai stato su Twitter e hai visto account che pubblicano foto, fatti o cartoni animati, ecc., È estremamente probabile che siano automatizzati. È un ottimo modo per creare un pubblico di persone interessate allo stesso argomento.

Ma c'è un altro motivo, oltre i retweet e i seguenti. Costruire un bot di Twitter ti insegnerà alcune utili abilità di programmazione. In precedenza abbiamo esaminato come costruire un bot Twitter di base con Python Come costruire un bot Twitter di Raspberry Pi Come costruire un bot Twitter di Raspberry Pi Twitter è il repository più grande al mondo di brevi messaggi di persone senza nulla da dire - e ora tu anche tu puoi contribuire a quel progetto epico con un bot Twitter automatizzato, 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 creare un bot di tweet su un Raspberry Pi. Le foto saranno foto della prima guerra mondiale, accompagnate da una breve frase e attribuzione). Queste informazioni verranno archiviate in un array, un database di base. Cos'è comunque un database? [MakeUseOf Explains] Allora, cos'è un database? [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 di database stesso è un po 'estraneo .... Ulteriori informazioni.

Inizia: crea il tuo database

Se desideri creare un bot di tweet con foto, dovrai iniziare raccogliendo le immagini che desideri condividere. Queste dovrebbero essere le tue immagini o quelle che hai acquisito in base a una Creative Commons o ad altre licenze open source.

Si dovrebbe anche tenere presente l'attribuzione e altre informazioni che si desidera andare con le immagini. Torneremo a 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 su un Raspberry Pi Come installare un sistema operativo su un Raspberry Pi Ecco come installare un sistema operativo su Raspberry Pi e come clonare il tuo perfetto configurazione 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 è necessario il modello Raspberry Pi 3 B + Come decidere se è necessario il modello Raspberry Pi 3 B + Quanto costa il Raspberry Pi 3 B +, quali specifiche ha, e migliorerà i tuoi progetti esistenti? 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 Raspberry Pi è un piccolo computer straordinario, ma può richiedere molto tempo per impostare e collegalo al monitor. Altre informazioni), aggiorna l'elenco dei pacchetti di sistema e aggiorna all'ultima versione:

 sudo apt-get update sudo apt-get dist-upgrade 

Segui il prompt sullo schermo e attendi che il tuo Pi si aggiorni. Al termine, riavviare con

 sudo reboot 

Al termine, utilizzare 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 più semplice è verificare il numero di versione:

 node -v 

La risposta dovrebbe essere qualcosa come v8.11.3 (o superiore). Se vedi qualcosa del genere, puoi essere sicuro che Node.js è pronto per l'uso.

Costruisci il tuo bot di Twitter

La fase successiva è inserire il codice che creerà il bot. Inizia creando una directory:

 mkdir twitterbot 

Quindi, modificalo nella nuova directory per il tuo bot:

 cd twitterbot 

Qui, crea un file chiamato server.js

 sudo nano server.js 

In questo file, inserisci una singola riga:

 console.log('I am a Twitter bot!'); 

Premi Ctrl + X per salvare ed uscire, quindi esegui lo script:

 node '/home/pi/twitterbot/server.js' 

Questo dovrebbe restituire la frase "I am a Twitter bot!". Ora che hai confermato che funziona, è ora di installare la libreria Twit con npm ( Node Package Manager ). Assicurati che sia installato inserendo:

 npm -v 

Ancora una volta, dovresti vedere un numero di versione visualizzato.

Seguilo con:

 npm init 

Questo inizia richiedendo 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 scegliere di inserire anche i tuoi dettagli. Una volta terminata questa configurazione, ti verrà chiesto di confermare i dettagli con "sì".

La fase successiva è installare il modulo Twit da npm.

 npm install twit --save 

Attendere che i file vengano scaricati nella sottodirectory node_modules. Una volta fatto, apri di nuovo il file server.js in nano.

 sudo nano server.js 

Qui, elimina il comando inserito in precedenza, sostituendolo con:

 var fs = require('fs'), path = require('path'), Twit = require('twit'), config = require(path.join(__dirname, 'config.js')); 

Salva ed esci come prima.

Crea un'app di Twitter

Per creare un bot Twitter funzionante, dovrai creare un'app Twitter. Questo è un processo semplice, che richiede di prima registrarti per un nuovo account Twitter. Nota che ciò richiede anche un numero di telefono per verificare l'account e, una volta fatto, vai su developer.twitter.com per creare l'app.

Se non disponi di un account sviluppatore, ciò potrebbe richiedere del tempo, poiché è necessario un certo numero di moduli da compilare. Questo è un passo che Twitter ha fatto per evitare lo spam, quindi prenditi il ​​tuo tempo e rispondi alle domande in modo accurato.

Fai clic su Crea un'app e aggiungi i dettagli come richiesto. Al momento della stesura del documento, il sistema di sviluppo è in fase di revisione, pertanto potrebbe essere necessario attendere alcuni giorni (e rispondere ad alcune domande aggiuntive).

Crea un'app su Twitter

Successivamente, passa alla scheda Chiavi e token e sotto Autorizzazioni trova l' autorizzazione Accesso e assicurati che sia impostata su Lettura e Scrittura (usa Modifica in caso contrario). Quindi passare a chiavi e token e prendere nota di quanto segue:

  • Chiave del consumatore
  • Segreto del consumatore

In token di accesso, fai clic su Crea per generare:

  • Token di accesso
  • Accedi al token segreto

Queste sono le chiavi API necessarie per consentire al bot di accedere al tuo account Twitter.

Di nuovo nella riga di comando, crea config.js in nano:

 sudo nano config.js 

Aggiungi quanto segue

 var config = { consumer_key: 'XXXXX', consumer_secret: 'XXXXX', access_token: 'XXXXX', access_token_secret: 'XXXXX' } module.exports = config; 

Dove legge "XXXXX", sostituisci i dettagli della tua chiave API corrispondente.

Aggiungi le tue stringhe chiave generate da Twitter nel file di configurazione

Salvare ed uscire, quindi aprire 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:

Questo codice richiederà l'invio di un tweet.

Ancora una volta, salva ed esci, quindi nella riga di comando, inserisci

 node server.js 

Apri il tuo account Twitter nel browser per vedere i risultati:

Un tweet di prova inviato utilizzando il codice Node.js

Hai confermato che il bot sta twittando, quindi è tempo di dargli qualcosa da fare!

Crea la tua cartella di immagini

Per twittare le foto, copia le immagini che hai raccolto in una cartella (in genere denominate immagini ). Inizia con una dozzina o giù di lì.

Quindi, torna al documento server.js:

 sudo nano server.js 

Qui, rimuovi il codice che ha inviato il tweet, la riga che inizia a T.post ('stati / aggiorna').

Successivamente, sostituiscilo 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)]; } 

Una volta fatto questo, dovrai aggiungere una seconda funzione, upload_random_image :

 function upload_random_image(images){ console.log('Opening an image...'); var image_path = path.join(__dirname, '/images/' + random_from_array(images)), b64content = fs.readFileSync(image_path, { encoding: 'base64' }); console.log('Uploading an image...'); T.post('media/upload', { media_data: b64content }, function (err, data, response) { if (err){ console.log('ERROR:'); console.log(err); } else{ console.log('Image uploaded!'); console.log('Now tweeting it...'); T.post('statuses/update', { media_ids: new Array(data.media_id_string) }, function(err, data, response) { if (err){ console.log('ERROR:'); console.log(err); } else{ console.log('Posted an image!'); } } ); } }); } 

Questa funzione preleva un'immagine a caso dalla cartella delle immagini e una volta selezionata viene caricata su Twitter utilizzando l'API media / upload.

Quindi, aggiungi il seguente codice. Questo troverà la directory delle immagini e ne trarrà un'immagine, pubblicandone una a caso ogni 60 secondi. Puoi (e dovresti) modificare questo timing, che è rappresentato nel codice con la figura 60000. Si consigliano spazi più lunghi.

  setInterval(function(){ upload_random_image(images); }, 60000); } }); 

Salvalo con Ctrl + X, quindi Sì per salvare. (Puoi trovare il codice completo per questo progetto su GitHub).

Un singolo utilizzo del comando node server.js richiederà quindi alle foto di iniziare a twittare! (Se dovessi terminare i post, premi Ctrl + Z per annullare lo script server.js.)

Aggiunta di testo ai tweet fotografici

Se è necessario aggiungere testo alle immagini, è possibile farlo utilizzando un array. L'array farà riferimento ai nomi dei file delle immagini ed elencherà il testo che dovrebbe essere aggiunto. Ad esempio, potresti aggiungere attribuzioni alle immagini che non hai scattato. Oppure potresti aggiungere alcuni fatti o un preventivo.

Un bot di Twitter può pubblicare foto e testo

Inizia creando images.js

 sudo nano images.js 

Qui, aggiungi il seguente codice. Questo è un array, con due elementi, file e sorgente. Questi contengono il nome del file dell'immagine e l'attribuzione (in genere un URL).

 var images = [ { file: 'image0001.png', source: 'http://www.example.com/image0001.png' }, { file: 'image0002.png', source: 'http://www.example.com/image0002.png' }, ] 

Ripeti quanto necessario per ogni immagine, quindi termina il file images.js con:

 module.exports = images; 

Salvare e chiudere il file, quindi aprire nuovamente server.js e aggiungerlo all'elenco delle variabili:

 images = require(path.join(__dirname, 'images.js')); 

Salvare ed uscire, quindi riavviare il bot Twitter con il comando node server.js ancora una volta.

Puoi anche usare il campo "sorgente" per includere del testo, spiegando lo sfondo dell'immagine. Questo può essere incluso insieme all'URL.

Il tuo primo bot di Twitter, pronto per essere riutilizzato!

A questo punto, dovresti avere un bot di Twitter con pubblicazione automatica attivo e funzionante, condividere foto, fatti e attributi sul tuo argomento.

Per riassumere, il processo è:

  • Colleziona le tue foto
  • Installa Node.js
  • Costruisci il tuo bot 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 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 di bot di Twitter per Raspberry Pi 10 I migliori progetti di bot di Twitter per Raspberry Pi Leggi di più!

Scopri di più su: Tutorial per progetti fai-da-te, JavaScript, Raspberry Pi, Twitter.