Kako izgraditi fotografiju cvrkut Twitter Bot s Raspberry Pi i Node.js

  • Owen Little
  • 0
  • 3973
  • 229
Oglas

Tražite način da Twitter učinim korisnijim, ako samo za druge ljude? Jedan od načina je stvoriti automatizirani Twitter bot koji tweeti slike s korisnim opisima. To možete učiniti ručno ... ili možete ga sastaviti s Node.js i ugostiti ga na Raspberry Pi. Pročitajte dalje kako biste saznali kako.

Zašto graditi Twitter Bot?

Ako ste ikada bili na Twitteru i vidjeli račune koji objavljuju fotografije, činjenice, crtane filmove itd., Velika je vjerovatnoća da su ti automatizirani. Odličan je način da se stvori publika ljudi zainteresiranih za istu temu.

Ali postoji još jedan razlog, osim retweeta i sljedećeg. Izgradnja Twitter-bota naučit će vas nekim korisnim vještinama programiranja. Prethodno smo gledali kako izgraditi osnovni Twitter bot s Python-om Kako izgraditi malinu Pi Twitter Bot Kako izgraditi malinu Pi Twitter Bot Twitter je najveće skladište kratkih poruka od ljudi koji nemaju što za reći - a sada vi također može pridonijeti tom epskom projektu s automatiziranim Twitter botom, pokretan vašim Raspberry ... (također na Raspberry Pi), ali ovaj put smo zauzeli drugačiji pristup.

U ovom ćemo projektu pomoću Node.js stvoriti bot za slanje fotografija na Raspberry Pi. Na fotografijama će biti fotografije iz Prvog svjetskog rata, uz kratku rečenicu i atribuciju). Ti će podaci biti pohranjeni u nizu, osnovnoj bazi podataka. Pa što je uopće baza podataka? [MakeUseOf objašnjava] Dakle, što je uopće baza podataka? [MakeUseOf Explains] Za programera ili tehnološkog entuzijasta, koncept baze podataka nešto je što se doista može shvatiti zdravo za gotovo. Međutim, mnogima je sam koncept baze podataka malo strani ... .

Započnite: gradite bazu podataka

Ako želite sastaviti bot za slanje fotografija, morat ćete početi prikupljanjem slika koje želite podijeliti. To bi trebale biti vaše slike ili slike koje ste stekli pod Creative Commonsom ili nekom drugom licencom otvorenog koda.

Također biste trebali zabilježiti atribuciju i druge podatke koje želite poslati sa slikama. Na ove ćemo se podatke vratiti kasnije, nakon što se bot pokrene.

Instalirajte Node.js na Raspbian

Započnite instalacijom Node.js. Već bi trebali imati Raspberry Pi i pokrenut, s instaliranim Raspbian-om. Kako instalirati operativni sustav na Raspberry Pi Kako instalirati operativni sustav na Raspberry Pi Evo kako instalirati OS na Raspberry Pi i kako klonirati savršen postavljanje za brzi oporavak od katastrofe. , Za ovaj projekt preporučujemo Raspberry Pi 2 ili noviju verziju; projekt je testiran na Raspberry Pi 3 B + Kako odlučiti trebate li novi model Raspberry Pi 3 B + Kako odlučiti ako vam treba novi model Raspberry Pi 3 B + Objavljen je novi Raspberry Pi 3 B +. Koliko to košta, koje žestoke specifikacije ima i hoće li poboljšati vaše postojeće projekte? Imamo odgovore. .

U terminalu (ili putem SSH VNC, SSH i HDMI: Tri opcije za pregled vašeg Raspberry Pi VNC-a, SSH i HDMI-a: Tri mogućnosti pregleda vašeg Raspberry Pi-a Raspberry Pi je izvanredno malo računalo, ali može biti potrebno puno vremena za postavljanje podesite ga i povežite s monitorom.), ažurirajte popis sistemskih paketa i nadogradite na najnoviju verziju:

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

Slijedite upit na zaslonu i pričekajte dok se Pi ažurira. Nakon što završite, ponovno pokrenite

sudo reboot

Kad završite, upotrijebite curl za preuzimanje Node.js:

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

Zatim ga instalirajte sa

sudo apt-get install -y nodejs

Kad je sve završeno, pokrenite provjeru da biste provjerili da je softver ispravno instaliran. Najlakše je provjeriti broj verzije:

čvor -v

Odgovor bi trebao biti nešto poput v8.11.3 (ili viši). Ako vidite nešto takvo, možete biti sigurni da je Node.js spreman za upotrebu.

Izgradite svoj Twitter Bot

Sljedeća faza je unos koda koji će stvoriti bot. Započnite stvaranjem direktorija:

mkdir twitterbot

Zatim ga promijenite u novi direktorij svog bota:

cd twitterbot

Ovdje stvorite datoteku koja se zove server.js

sudo nano server.js

U ovu datoteku unesite jedan redak:

console.log ('Ja sam Twitter bot!');

tisak Ctrl + X da biste spremili i izašli, a zatim pokrenite skriptu:

čvor '/home/pi/twitterbot/server.js'

Ovo bi trebalo vratiti frazu “Ja sam Twitter bot!”. Sada kada ste potvrdili da ovo radi, vrijeme je da instalirate Twit knjižnicu NPM (The Node Manager paketa). Uvjerite se da je ovo instalirano unosom:

npm -v

Opet biste trebali vidjeti broj verzije.

Slijedite to sa:

npm init

Ovo započinje pozivom na informacije o aplikaciji Node.js koju stvarate. Prikazane su zadane opcije (ovako), tako da možete samo dodirnuti Enter da biste ih prihvatili. Možete i sami unijeti svoje detalje. Nakon završetka ove konfiguracije, od vas će se tražiti da potvrdite detalje “Da”.

Sljedeća faza je instalacija Twit modula od npm-a.

npm instalirati twit --save

Pričekajte dok se datoteke preuzmu u poddirektoriju node_modules. Kad to učinite, otvorite datoteku server.js ponovo u nano.

sudo nano server.js

Ovdje izbrišite naredbu koju ste unijeli ranije, zamjenjujući je s:

var fs = zahtjev ('fs'), path = zahtjev ('path'), Twit = zahtjev ('twit'), config = zahtjev (path.join (__ dirname, 'config.js'));

Spremite i izađite kao i prije.

Stvorite Twitter aplikaciju

Da biste izgradili radni Twitter bot, morat ćete stvoriti Twitter aplikaciju. Ovo je jednostavan postupak, za koji se morate prvo prijaviti za novi Twitter račun. Imajte na umu da za to također trebate telefonski broj da biste potvrdili račun, a nakon što to učinite idite na developer.twitter.com da biste stvorili aplikaciju.

Ako nemate račun programera, to može potrajati neko vrijeme jer je potrebna određena količina popunjavanja obrasca. Ovo je korak koji je Twitter poduzeo da izbjegne neželjenu poštu, pa odvojite vrijeme i precizno odgovorite na pitanja.

Klik Stvorite aplikaciju, i dodajte pojedinosti prema zahtjevu. U vrijeme pisanja, program za razvojne programere je na remontu, pa ćete možda morati pričekati nekoliko dana (i odgovoriti na dodatna pitanja).

Zatim prijeđite na Ključevi i tokeni pod i ispod dozvole naći Dozvola pristupa i osigurati da je postavljeno Čitati i pisati (koristiti Uredi ako ne). Zatim se prebacite na Ključevi i tokeni i zabilježite sljedeće:

  • Potrošački ključ
  • Potrošačka tajna

Pod Token pristup kliknite Stvoriti generirati:

  • Pristup tokenu
  • Pristupite Token Secret

Ovo su API ključevi koji će vam trebati za pristup botu vašem Twitter računu.

Natrag u naredbeni redak kreirajte config.js u nano:

sudo nano config.js

Dodajte sljedeće

var config = potrošački_ključak: 'XXXXX', potrošački_secret: 'XXXXX', access_token: 'XXXXX', access_token_secret: 'XXXXX' module.exports = config;

Tamo gdje glasi "XXXXX", zamijenite odgovarajuće pojedinosti o ključu API-ja.

Spremite i izađite, a zatim otvorite server.js.

sudo nano server.js

Ovdje na kraj datoteke dodajte sljedeće retke:

var T = novi Twit (config); T.post ('statusi / ažuriranje', status: 'Moj prvi tweet!', Funkcija (greška, podaci, odgovor) console.log (podaci));

To bi trebalo izgledati ovako:

Opet spremite i izađite, a zatim u naredbeni redak uđite

čvor server.js

Otvorite svoj Twitter račun u pregledniku da biste vidjeli rezultate:

Potvrdili ste da se bot tweetira, pa je vrijeme da mu date nešto za napraviti!

Stvorite svoju mapu slika

Da biste tvitovali fotografije, kopirajte slike koje ste sakupili u mapu (obično su imenovani slika). Započnite s desetak ili tako nešto.

Zatim se vratite na server.js dokument:

sudo nano server.js

Ovdje uklonite kôd koji je poslao tweet, liniju koja započinje T.post ('statusi / ažuriranje').

Zatim zamijenite ovo funkcijom, zvanom random_from_array. Ovo će nasumično odabrati sliku iz mape slika.

funkcija random_from_array (slike) return images [Math.floor (Math.random () * images.length)]; 

Nakon što to učinite, morat ćete dodati drugu funkciju, upload_random_image:

funkcija upload_random_image (slike) console.log ('Otvaranje slike ...'); var image_path = path.join (__ ime, '/ images /' + random_from_array (slike)), b64content = fs.readFileSync (image_path, encoding: 'base64'); console.log ("Učitavanje slike ..."); T.post ('media / upload', media_data: b64content, funkcija (greška, podaci, odgovor) if (err) console.log ('ERROR:'); console.log (err); else  console.log ('Slika je učitana!'); console.log ('Sada cvrkutanje ...'); T.post ('statusi / ažuriranje', media_ids: novi Array (data.media_id_string), funkcija (greška, podaci , odgovor) if (err) console.log ('GREŠKA:'); console.log (greška); else console.log ('Objavljena slika!'););); 

Ova funkcija nasumično odabire sliku iz mape slika, a nakon što je odabrana se prenese na Twitter pomoću API-ja za medije / prijenos.

Zatim dodajte sljedeći kôd. Ovo će pronaći direktorij slika i uzeti sliku iz njega, objavljujući je nasumično na svakih 60 sekundi. Možete (i trebali) uređivati ​​tajming, koji je u kodu predstavljen slikom 60000. Preporučuju se duže praznine..

 setInterval (funkcija () upload_random_image (slike);, 60000); );

Spremite ovo pomoću ctrl + x, onda Da za spremanje. (Puni kod ovog projekta možete pronaći na GitHubu).

Jedna upotreba sustava čvor server.js naredba će nakon toga poslati fotografije da započnu tweetanje! (Ako trebate završiti postove, pritisnite Ctrl + Z za otkazivanje skripte server.js.)

Dodavanje teksta u foto tweetove

Ako trebate dodati tekst svojim slikama, to možete učiniti pomoću polja. Niz će se pozivati ​​na nazive slika i popisat će tekst koji treba dodati. Na primjer, možete dodati atribuciju slikama koje niste snimili. Ili možete dodati neke činjenice ili citat.

Započnite stvaranjem images.js

sudo nano images.js

Ovdje dodajte sljedeći kôd. Ovo je niz s dva elementa, datotekom i izvorom. Sadrže naziv datoteke slike i atribuciju (obično URL).

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

Ponovite prema potrebi za svaku sliku, a zatim datoteku images.js završite sa:

module.exports = slike;

Spremite i zatvorite datoteku, a zatim ponovo otvorite server.js i dodajte to popisu varijabli:

slike = zahtijevaju (path.join (__ dirname, 'images.js'));

Spremite i izađite, a zatim ponovno pokrenite Twitter bot s čvor server.js naredba još jednom.

Možete koristiti i “izvor” polje koje uključuje neki tekst, objašnjavajući pozadinu slike. To se može uključiti uz URL.

Vaš prvi Twitter Bot, spreman za ponovnu upotrebu!

Do sad biste trebali pokrenuti i pokrenuti automatski objavljivanje Twitter bot-a, dijeljenje fotografija, činjenica i atributa na zadanu temu.

Ukratko, postupak je:

  • Prikupite svoje fotografije
  • Instalirajte Node.js
  • Izgradite svoj Twitter bot
  • Prijavite se za status programera na Twitteru
  • Napravite Twitter aplikaciju
  • Dodajte niz atribucija
  • Počnite tweeting!

Možda je najbolja stvar u tome što se kod može upotrijebiti za tweet fotografije, činjenice i atribute na doslovno bilo kojoj temi.

Želite li znati koje biste još robote mogli pokrenuti sa sličnom postavkom? Pogledajte naš popis najboljih Twitter bot projekata za Raspberry Pi 10 Najbolji projekti za Botberry Pi 10 Twitter Bot projekte Raspberry Pi !




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.