Sådan oprettes et foto, der kvitterer Twitter Bot med Raspberry Pi og Node.js

  • Edmund Richardson
  • 0
  • 2874
  • 494
Reklame

Leder du efter en måde at gøre Twitter mere nyttig, hvis kun for andre mennesker? En måde er at oprette en automatiseret Twitter-bot, der tweeter billeder med nyttige beskrivelser. Du kan gøre dette manuelt ... eller du kan opbygge det med Node.js og være vært for det på en Raspberry Pi. Læs videre for at finde ud af hvordan.

Hvorfor opbygge en Twitter-bot?

Hvis du nogensinde har været på Twitter og set konti, der poster fotos, fakta eller tegneserier osv., Er det overvældende sandsynligt, at disse er automatiserede. Det er en fantastisk måde at opbygge et publikum af mennesker interesseret i det samme emne.

Men der er en anden grund ud over retweets og følger. At opbygge en Twitter-bot vil lære dig nogle nyttige programmeringsevner. Vi har tidligere kigget på, hvordan man bygger en grundlæggende Twitter-bot med Python Sådan bygger man en hindbær Pi Twitter Bot Sådan bygger man en bringebær Pi Twitter Bot Twitter er verdens største opbevaringssted med korte meddelelser fra folk med intet at sige - og nu har du også kan bidrage til det episke projekt med en automatiseret Twitter-bot, drevet af din Raspberry ... (også på en Raspberry Pi), men denne gang tager vi en anden tilgang.

I dette projekt skal vi bruge Node.js til at opbygge en fototweeting-bot på en Raspberry Pi. Billederne er billeder fra første verdenskrig, ledsaget af en kort sætning og tilskrivning). Denne information gemmes i en matrix, en grundlæggende database. Hvad er en database, alligevel? [MakeUseOf Explains] Så hvad er en database alligevel? [MakeUseOf Explains] For en programmør eller en teknologientusiast er begrebet en database noget, der virkelig kan tages for givet. For mange mennesker er konceptet med en database i sig selv lidt udenlandsk ... .

Kom godt i gang: Byg din database

Hvis du vil opbygge en fototweeting-bot, skal du starte med at samle de billeder, du vil dele. Disse skal enten være dine egne billeder, eller billeder, du har erhvervet under en Creative Commons eller en anden open source-licens.

Du skal også holde opmærksom på attributningen og andre oplysninger, du vil bruge til billederne. Vi vil vende tilbage til disse oplysninger senere, når bot er i gang.

Installer Node.js på Raspbian

Begynd med at installere Node.js. Du skal allerede have en Raspberry Pi i gang, med Raspbian installeret Sådan installeres et operativsystem på en Raspberry Pi Sådan installeres et operativsystem på en Raspberry Pi. Sådan installeres et operativsystem på din Raspberry Pi, og hvordan du kloner din perfekte opsætning til hurtig gendannelse af katastrofer . Til dette projekt anbefaler vi en Raspberry Pi 2 eller nyere; projektet blev testet på Raspberry Pi 3 B + Hvordan man beslutter, om du har brug for den nye Raspberry Pi 3 B + model Sådan beslutter du, om du har brug for den nye Raspberry Pi 3 B + Model Den nye Raspberry Pi 3 B + er blevet frigivet. Hvor meget koster det, hvilken hård specifikation har den, og vil det forbedre dine eksisterende projekter? Vi har svar. .

I terminalen (eller via SSH VNC, SSH og HDMI: Tre muligheder for at se din Raspberry Pi VNC, SSH og HDMI: Tre muligheder for at se din Raspberry Pi Raspberry Pi er en bemærkelsesværdig lille computer, men det kan være tidskrævende at indstille op, og tilslut den til din skærm.), opdater systempakkelisten og opgrader til den nyeste version:

sudo apt-get-opdatering sudo apt-get dist-upgrade

Følg prompt på skærmen, og vent, mens din Pi opdateres. Når du er færdig, skal du genstarte med

start igen

Når du er færdig, skal du bruge krøllet til at downloade Node.js:

krølle -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Installer det derefter med

sudo apt-get install -y nodejs

Når alt er gjort, skal du køre en kontrol for at sikre, at softwaren er installeret korrekt. Det nemmeste er at tjekke for versionnummeret:

knude -v

Svaret skal være noget som v8.11.3 (eller højere). Hvis du ser noget lignende, kan du være sikker på, at Node.js er klar til brug.

Byg din Twitter-bot

Det næste trin er at indtaste koden, der vil oprette bot. Begynd med at oprette et bibliotek:

mkdir twitterbot

Skift derefter det til det nye bibliotek til din bot:

cd twitterbot

Opret her en fil kaldet server.js

sudo nano server.js

Indtast en enkelt linje i denne fil:

console.log ('Jeg er en Twitter-bot!');

Trykke Ctrl + X for at gemme og afslutte, kør derefter scriptet:

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

Dette skal returnere sætningen “Jeg er en Twitter-bot!”. Nu, hvor du har bekræftet, at dette fungerer, er det tid til at installere Twit-biblioteket med NPM (det Node Package Manager). Sørg for, at dette er installeret ved at indtaste:

npm -v

Igen skulle du se et versionnummer vises.

Følg dette med:

npm init

Dette begynder med at bede dig om oplysninger om den Node.js-app, du opretter. Standardindstillinger vises (som denne), så du kan bare trykke på Enter for at acceptere dem. Du kan også vælge at indtaste dine egne detaljer. Når denne konfiguration er forbi, bliver du bedt om at bekræfte detaljerne med “Ja”.

Det næste trin er at installere Twit-modulet fra kl.

npm installere twit - Save

Vent, mens filerne downloades i undermappen bibliotek af node_moduler. Når det er gjort, skal du åbne server.js-filen igen i nano.

sudo nano server.js

Slet her den kommando, du indtastede tidligere, og erstatt den med:

var fs = kræver ('fs'), sti = kræver ('sti'), Twit = kræver ('twit'), config = kræver (path.join (__ dirname, 'config.js'));

Gem og luk som før.

Opret en Twitter-app

For at opbygge en fungerende Twitter-bot skal du oprette en Twitter-app. Dette er en simpel proces, som kræver, at du først tilmelder dig en ny Twitter-konto. Bemærk, at dette også kræver et telefonnummer for at bekræfte kontoen, og når dette er gjort, skal du gå til Developer.twitter.com for at oprette appen.

Hvis du ikke har en udviklerkonto, kan det tage noget tid, da der er brug for en vis mængde formular. Dette er et skridt, som Twitter har taget for at undgå spam, så tag dig tid og besvar spørgsmålene nøjagtigt.

Klik Opret en app, og tilføj detaljerne som anmodet. I skrivende stund gennemgår udviklingssystemet en revision, så du skal muligvis vente et par dage (og besvare nogle yderligere spørgsmål).

Skift derefter til Taster og symboler fane og under Tilladelser Find Adgangstilladelse og sikre, at det er indstillet til Læs og skriv (brug Redigere hvis ikke). Skift derefter til nøgler og symboler og noter følgende:

  • Forbrugernøgle
  • Forbrugerhemmelighed

Klik på Access under token skab at generere:

  • Adgangstoken
  • Access Token Secret

Dette er API-nøglerne, som du har brug for for at give bot adgang til din Twitter-konto.

Tilbage i kommandolinjen skal du oprette config.js i nano:

sudo nano config.js

Tilføj følgende

var config = customer_key: 'XXXXX', customer_secret: 'XXXXX', access_token: 'XXXXX', access_token_secret: 'XXXXX' module.exports = config;

Hvor det lyder "XXXXX", skal du erstatte dine egne korresponderende API-nøgledetaljer.

Gem og afslutt, og åbn derefter server.js.

sudo nano server.js

Tilføj her følgende linjer til slutningen af ​​filen:

var T = new Twit (config); T.post ('status / opdatering', status: 'Min første tweet!', Funktion (err, data, respons) console.log (data));

Det skal se sådan ud:

Igen skal du gemme og afslutte og derefter på kommandolinjen indtaste

node server.js

Åbn din Twitter-konto i browseren for at se resultaterne:

Du har bekræftet, at botten twitrer, så det er på tide at give det noget at gøre!

Opret din mappe med billeder

For at tweet fotos skal du kopiere de billeder, du har samlet, i en mappe (typisk navngivet billeder). Start med et dusin eller deromkring.

Gå derefter tilbage til server.js-dokumentet:

sudo nano server.js

Fjern her koden, der sendte tweeten, linjen, der begynder T.post ('status / opdatering').

Udskift derefter dette med en kaldet funktion random_from_array. Dette vælger et billede tilfældigt fra billedmappen.

funktion random_from_array (billeder) return images [Math.floor (Math.random () * images.length)]; 

Når du har gjort dette, skal du tilføje en anden funktion, upload_random_image:

funktion upload_random_image (billeder) console.log ('Åbning af et billede ...'); var image_path = path.join (__ dirname, '/ images /' + random_from_array (billeder)), b64content = fs.readFileSync (image_path, koding: 'base64'); console.log ('Upload et billede ...'); T.post ('media / upload', media_data: b64content, funktion (err, data, respons) if (err) console.log ('ERROR:'); console.log (err); andet  console.log ('Image uploadet!'); console.log ('Nu tweeting it ...'); T.post ('statuses / update', media_ids: new Array (data.media_id_string), funktion (err, data , svar) if (err) console.log ('ERROR:'); console.log (err); else console.log ('Lagt et billede!'););); 

Denne funktion vælger et billede tilfældigt fra billedmappen, og når det først er valgt, uploades det til Twitter ved hjælp af medie / upload API.

Tilføj derefter følgende kode. Dette vil finde billedbiblioteket og tage et billede fra det og sende et tilfældigt hvert 60 sekund. Du kan (og bør) redigere denne timing, der er repræsenteret i koden med tallet 60000. Det tilrådes længere huller.

 setInterval (funktion () upload_random_image (billeder);, 60000); );

Gem dette med Ctrl + x, derefter Ja for at gemme. (Du kan finde den fulde kode for dette projekt på GitHub).

En enkelt brug af node server.js kommandoen vil derefter bede fotos om at begynde at tweeting! (Hvis du har brug for at afslutte indlægene, skal du trykke på Ctrl + Z for at annullere scriptet til server.js.)

Tilføjelse af tekst til dine fototweet

Hvis du har brug for at tilføje tekst til dine billeder, kan dette gøres ved hjælp af en matrix. Arrayen henviser til filnavne på billederne og viser teksten, der skal tilføjes. For eksempel kan du tilføje attribution til billeder, som du ikke har taget. Eller du kan tilføje nogle fakta eller et tilbud.

Begynd med at oprette images.js

sudo nano images.js

Tilføj her følgende kode. Dette er en matrix med to elementer, fil og kilde. Disse indeholder filnavnet på billedet og attributten (typisk en URL).

var images = [fil: 'image0001.png', kilde: 'http://www.example.com/image0001.png', fil: 'image0002.png', kilde: 'http: // www. eksempel.com/image0002.png ',]

Gentag om nødvendigt for hvert billede, og afslut derefter images.js-filen med:

module.exports = billeder;

Gem og luk filen, åbn derefter server.js igen, og tilføj denne til listen over variabler:

billeder = kræver (path.join (__ dirname, 'images.js'));

Gem og forlad, og genstart derefter Twitter-bot med node server.js kommando igen.

Du kan også bruge “kilde” felt for at inkludere noget tekst, der forklarer billedets baggrund. Dette kan inkluderes ved siden af ​​URL'en.

Din første Twitter-bot, klar til at genbruge!

Nu skal du have en automatisk bogføring af Twitter-bot op og køre, dele fotos, fakta og attributter om dit givne emne.

For at opsummere er processen:

  • Saml dine fotos
  • Installer Node.js
  • Byg din Twitter-bot
  • Ansøg om udviklerstatus på Twitter
  • Opret en Twitter-app
  • Tilføj et attributionsarray
  • Begynd at twitre!

Det bedste ved dette er måske, at koden kan bruges til at tweet fotos, fakta og attributter om bogstaveligt talt ethvert emne.

Vil du vide, hvilke andre bots du kunne køre med en lignende opsætning? Tjek vores liste over de bedste Twitter-bot-projekter til Raspberry Pi 10 Bedste Twitter Bot-projekter til Raspberry Pi 10 Bedste Twitter Bot-projekter til Raspberry Pi !




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.