Cum de a construi o fotografie Tweeting Twitter Bot cu zmeura Pi și Node.js

Cum de a construi o fotografie Tweeting Twitter Bot cu zmeura Pi și Node.js / Programare

Căutați o modalitate de a face Twitter mai util, dacă numai pentru alte persoane? O modalitate este de a crea un robot automatizat de Twitter care tweet imagini cu descrieri utile. Ai putea să faci asta manual ... sau ai putea să o construiești cu Node.js și să-l găzdui pe un Raspberry Pi. Citiți mai departe pentru a afla cum.

De ce să construiți un bot Twitter?

Dacă ați fost vreodată pe Twitter și ați văzut conturi care postează poze, fapte sau desene animate etc., atunci este foarte probabil ca acestea să fie automatizate. Este o modalitate foarte bună de a construi o audiență de persoane interesate de același subiect.

Dar există un alt motiv, dincolo de retweet și urmează. Construirea unui bot Twitter vă va învăța câteva abilități de programare utile. Ne-am uitat în trecut la cum să construim un bot de bază Twitter cu Python Cum să construim o zmeură Pi Twitter Bot Cum să construim o zmeură Pi Twitter Bot Twitter este cel mai mare depozit din lume de mesaje scurte de la oameni cu nimic de spus - prea poate contribui la acest proiect epic cu un bot automat Twitter, alimentat de Raspberry dvs. ... Citeste mai mult (de asemenea, pe o Raspberry Pi), dar de data aceasta luam o abordare diferita.

În acest proiect, vom folosi Node.js pentru a construi un bot de tweeting foto pe o Raspberry Pi. Fotografiile vor fi fotografii din primul război mondial, însoțite de o scurtă propoziție și atribuire). Aceste informații vor fi stocate într-o matrice, o bază de date de bază. Deci, ce este o bază de date, oricum? [Explicarea MakeUseOf] Deci ce este o bază de date, oricum? [Explică-i pe MakeUseOf] Pentru un programator sau un entuziast al tehnologiei, conceptul de bază de date este ceva care poate fi cu adevărat de acordat. Cu toate acestea, pentru mulți oameni conceptul de bază de date în sine este un pic străin ... Citește mai mult .

Începeți: Construiți baza de date

Dacă doriți să creați un bot de tweeting pentru fotografie, va trebui să începeți prin colectarea imaginilor pe care doriți să le partajați. Acestea ar trebui fie propriile imagini, fie cele pe care le-ați achiziționat în cadrul unei Creative Commons sau al unei alte licențe open source.

De asemenea, trebuie să țineți notă de atribuire și alte informații pe care doriți să le faceți cu imaginile. Vom reveni la aceste informații mai târziu, odată ce botul este în funcțiune.

Instalați Node.js pe Raspbian

Începeți prin instalarea Node.js. Ar trebui să aveți deja un Raspberry Pi și să fie difuzate, cu Raspbian instalat Cum să instalați un sistem de operare la zmeura dumneavoastră Pi Cum să instalați un sistem de operare la zmeura dvs. Pi Iată cum să obțineți un nou sistem de operare instalat și care rulează pe dvs. Pi - pentru a vă clona setarea perfectă pentru recuperarea rapidă în caz de dezastru. Citeste mai mult . Pentru acest proiect, vă recomandăm un Zmeier Pi 2 sau mai târziu; proiectul a fost testat pe baza de Raspberry Pi 3 B + Cum sa decida daca ai nevoie de Pi 3 Model + Cum sa te hotaraste daca ai nevoie de Pi 3 Z + Model nou Raspberry Pi 3 B + a fost lansat. Cât costă, ce specificație greu are, și îți va îmbunătăți proiectele existente? Avem răspunsuri. Citeste mai mult .

În terminalul (sau prin intermediul SSH VNC, SSH și HDMI: Trei opțiuni pentru vizualizarea zmeurii dvs. Pi VNC, SSH și HDMI: Trei opțiuni pentru vizualizarea zmeurii dvs. Pi Raspberry Pi este un mic computer remarcabil, dar poate fi nevoie de timp pentru a seta conectați-l la monitorul dvs. Citiți mai multe), actualizați lista de pachete de sistem și faceți upgrade la cea mai recentă versiune:

sudo apt-get actualizare sudo apt-get dist-upgrade

Urmați promptul de pe ecran și așteptați în timp ce actualizați Pi. După ce ați terminat, reporniți cu

sudo reboot

Când ați terminat, utilizați curl pentru a descărca Node.js:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Apoi, instalați-l cu

sudo apt-get instalați-nodejs

Când se termină totul, executați o verificare pentru a vă asigura că software-ul a fost instalat corect. Cea mai ușoară este să verificați numărul versiunii:

nod -v

Răspunsul ar trebui să fie ceva de genul v8.11.3 (sau mai mare). Dacă vedeți ceva de genul asta, puteți avea încredere că Node.js este gata de utilizare.

Construiți-vă Twitter Twitter

Următoarea etapă este de a introduce codul care va crea botul. Începeți prin crearea unui director:

mkdir twitterbot

Apoi, schimbați-l la noul director pentru botul dvs .:

cd twitterbot

Aici, creați un fișier numit server.js

sudo nano server.js

În acest fișier introduceți o singură linie:

console.log ("Sunt un bot de Twitter!");

presa Ctrl + X pentru a salva și a ieși, executați apoi scriptul:

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

Aceasta ar trebui să returneze fraza “Sunt un bot de Twitter!”. Acum că ați confirmat că funcționează, este timpul să instalați biblioteca Twit NPM (The Nod Manager pachet). Asigurați-vă că acesta este instalat introducând:

npm -v

Din nou, ar trebui să vedeți un număr de versiune afișat.

Urmați acest lucru cu:

npm init

Acest lucru începe prin a vă solicita informații despre aplicația Node.js pe care o creați. Opțiunile prestabilite sunt afișate (astfel), astfel încât să puteți apăsa pe Enter pentru a le accepta. Puteți alege să introduceți și dumneavoastră propriile detalii. După încheierea acestei configurații, vi se va solicita să confirmați detaliile “da”.

Următoarea etapă este instalarea modulului Twit de la npm.

npm instalează twit - salvează

Așteptați descărcarea fișierelor în subdirectorul node_modules. După ce sa terminat, deschideți din nou fișierul server.js în nano.

sudo nano server.js

Aici, ștergeți comanda pe care ați introdus-o mai devreme, înlocuindu-l cu:

var fs = necesită ('fs'), cale = necesită ('calea'), Twit = necesită ('twit'), config = necesită (path.join (__ dirname, 'config.js'));

Salvați și ieșiți ca înainte.

Creați o aplicație Twitter

Pentru a construi un rob bot de lucru, va trebui să creați o aplicație Twitter. Acesta este un proces simplu, care vă cere să vă înregistrați mai întâi pentru un nou cont de Twitter. Rețineți că acest lucru necesită, de asemenea, un număr de telefon pentru a verifica contul și, odată ce acest lucru este făcut, mergeți la developer.twitter.com pentru a crea aplicația.

Dacă nu aveți un cont de dezvoltator, acest lucru poate dura ceva timp, deoarece este nevoie de o anumită cantitate de formular de umplere. Acesta este un pas pe care a făcut-o Twitter-ul pentru a evita spam-ul, deci luați-vă timpul și răspundeți la întrebări cu exactitate.

Clic Creați o aplicație, și adăugați detaliile așa cum vi se solicită. La momentul redactării, sistemul de dezvoltatori trece printr-o revizuire, astfel că va trebui să așteptați câteva zile (și să răspundeți la câteva întrebări suplimentare).

Apoi treceți la Chei și jetoane și sub Permisiuni găsi Acces permisiune și asigurați-vă că este setat la Citeste si scrie (utilizare Editați | × dacă nu). Apoi treceți la Chei și Jetoane și notați următoarele:

  • Cheia de consum
  • Secretul consumatorilor

Sub jet de acces, faceți clic pe Crea a genera:

  • Jeton de acces
  • Accesați Secretul Token

Acestea sunt cheile API de care veți avea nevoie pentru a oferi botului acces la contul dvs. Twitter.

Înapoi în linia de comandă, creați config.js în nano:

sudo nano config.js

Adăugați următoarele

var config = consumer_key: 'XXXXX', consumer_secret: 'XXXXX', access_token: 'XXXXX', acces_token_secret: 'XXXXX' modul.exports = config;

În cazul în care se citește "XXXXX", înlocuiți detaliile cheie ale API corespunzătoare.

Salvați și ieșiți, apoi deschideți server.js.

sudo nano server.js

Aici, adăugați următoarele rânduri la sfârșitul fișierului:

var T = noua Twit (config); T.post ('statuses / update', status: 'My first tweet!', Funcția (err, data, răspuns) console.log (data));

Ar trebui să arate astfel:

Din nou, salvați și ieșiți, apoi în linia de comandă, introduceți

nod server.js

Deschideți contul dvs. Twitter în browser pentru a vedea rezultatele:

Ați confirmat că botul este în tweeting, deci e timpul să dați ceva de făcut!

Creați folderul de imagini

Pentru a tweet fotografii, copiați imaginile pe care le-ați colectat într-un dosar (de obicei numit imagini). Începeți cu aproximativ o duzină.

Apoi, reveniți la documentul server.js:

sudo nano server.js

Aici, eliminați codul care a trimis tweet-ul, linia care începe la T.post ('statuses / update').

Apoi, înlocuiți această funcție cu o funcție numită random_from_array. Aceasta va alege o imagine aleatorie din dosarul cu imagini.

funcția random_from_array (imagini) return imagini [Math.floor (Math.random () * images.length)]; 

Odată ce ați făcut acest lucru, va trebui să adăugați oa doua funcție, upload_random_image:

funcția upload_random_image (images) console.log ("Deschiderea unei imagini ..."); var image_path = path.join (__ dirname, '/ images /' + random_from_array (imagini)), b64content = fs.readFileSync (calea_imaginii, encoding: 'base64'); console.log ("Încărcarea unei imagini ..."); T.post ("media / upload", media_data: b64content, funcția (err, date, răspuns) if (err) console.log (err) console.log ('Imagine încărcat!'); console.log ('Acum tweeting it ...'); T.post ('statuses / update', media_ids: new Array (data.media_id_string), , răspuns) if (err) console.log ('ERROR:'); console.log (err); altceva console.log ('Postat o imagine');); 

Această funcție alege o imagine aleatorie din folderul cu imagini, iar odată selectată este încărcată pe Twitter utilizând API-ul media / încărcare.

Apoi, adăugați următorul cod. Acesta va găsi directorul de imagini, și să ia o imagine de la el, postând unul la întâmplare la fiecare 60 de secunde. Puteți modifica (și ar trebui să) acest moment, care este reprezentat în codul cu cifra 60000. Sunt recomandate mai multe decalaje.

 setInterval (funcția () upload_random_image (imagini);, 60000); );

Salvați acest lucru cu Ctrl + X, apoi Da pentru a salva. (Puteți găsi codul complet pentru acest proiect la GitHub).

O singură utilizare a nod server.js comanda va cere apoi fotografiile pentru a începe tweeting! (Dacă trebuie să terminați posturile, apăsați Ctrl + Z pentru a anula scriptul server.js.)

Adăugarea textului la tweeturile dvs. foto

Dacă aveți nevoie să adăugați text la imaginile dvs., acest lucru se poate face folosind un matrice. Matricea se va referi la numele de fișiere ale imaginilor și va afișa textul care ar trebui adăugat. De exemplu, este posibil să adăugați atribuirea unor imagini pe care nu le-ați luat. Sau puteți adăuga câteva fapte sau un citat.

Începeți prin crearea imaginilor.js

sudo nano images.js

Aici adăugați următorul cod. Aceasta este o matrice, cu două elemente, fișier și sursă. Acestea păstrează numele fișierului imaginii și atribuirea (de obicei o adresă URL).

var imagini = [fișier: 'image0001.png', sursa: 'http://www.example.com/image0001.png', fișier: 'image0002.png', sursa: 'http: // www. example.com/image0002.png ',]

Repetați după cum este necesar pentru fiecare imagine, apoi terminați fișierul images.js cu:

module.exports = imagini;

Salvați și închideți fișierul, apoi deschideți din nou server.js și adăugați-l la lista de variabile:

images = necesită (path.join (__ dirname, 'images.js'));

Salvați și ieșiți, apoi reporniți botul Twitter cu nod server.js comanda încă o dată.

S-ar putea să folosiți și “sursă” pentru a include un text, explicând fundalul imaginii. Aceasta poate fi inclusă alături de adresa URL.

Primul tău Twitter Twitter, gata de reutilizare!

Până acum, ar trebui să aveți un bot de auto-postare Twitter sus și de funcționare, partajarea de fotografii, fapte și atribute pe subiectul dat.

Pentru a rezuma, procesul este:

  • Colectați-vă fotografiile
  • Instalați Node.js
  • Construiți-vă botul Twitter
  • Solicitați statutul de dezvoltator pe Twitter
  • Creați o aplicație Twitter
  • Adăugați o matrice de atribuire
  • Începeți tweetingul!

Poate că cel mai bun lucru în legătură cu acest lucru este că codul poate fi folosit pentru a tweet fotografii, fapte și atribute pe literalmente orice subiect.

Doriți să știți ce alte boti ați putea executa cu o configurație similară? Verificați lista noastră de cele mai bune proiecte Twitter bot pentru Raspberry Pi 10 Cel mai bun Twitter Proiecte Bot pentru Raspberry Pi 10 Cele mai bune proiecte Twitter Bot pentru Raspberry Pi Citiți mai multe !

Explorați mai multe despre: DIY Project Tutorials, JavaScript, Raspberry Pi, Twitter.