So erstellen Sie einen Twitter-Bot zum Tweeten von Fotos mit Raspberry Pi und Node.js
Werbung
Auf der Suche nach einer Möglichkeit, Twitter nützlicher zu machen, wenn auch nur für andere? Eine Möglichkeit besteht darin, einen automatisierten Twitter-Bot zu erstellen, der Bilder mit nützlichen Beschreibungen twittert. Sie könnten dies manuell tun ... oder Sie könnten es mit Node.js erstellen und es auf einem Raspberry Pi hosten. Lesen Sie weiter, um herauszufinden, wie.
Warum einen Twitter-Bot erstellen?
Wenn Sie schon einmal auf Twitter waren und Konten gesehen haben, in denen Fotos, Fakten, Cartoons usw. veröffentlicht wurden, ist es mit überwältigender Wahrscheinlichkeit so, dass diese automatisiert sind. Es ist eine großartige Möglichkeit, ein Publikum von Menschen zusammenzubringen, die sich für dasselbe Thema interessieren.
Aber es gibt noch einen anderen Grund, jenseits von Retweets und Followern. Wenn Sie einen Twitter-Bot erstellen, lernen Sie einige nützliche Programmierkenntnisse. Wir haben uns zuvor angesehen, wie man mit Python einen einfachen Twitter-Bot erstellt. Wie man einen Himbeer-Pi-Twitter-Bot erstellt. Wie man einen Himbeer-Pi-Twitter-Bot erstellt Auch wir können mit einem automatisierten Twitter-Bot, der von Ihrem Himbeer-Pi angetrieben wird, zu diesem epischen Projekt beitragen. Lesen Sie mehr (auch auf einem Himbeer-Pi), aber dieses Mal verfolgen wir einen anderen Ansatz.
In diesem Projekt werden wir Node.js verwenden, um einen Foto-Tweeting-Bot auf einem Himbeer-Pi zu erstellen. Bei den Fotos handelt es sich um Fotos aus dem Ersten Weltkrieg, die mit einem kurzen Satz und Zuschreibung versehen sind. Diese Informationen werden in einem Array gespeichert, einer Basisdatenbank. Was ist also eine Datenbank? [MakeUseOf Explains] Also, was ist überhaupt eine Datenbank? [MakeUseOf Explains] Für einen Programmierer oder Technologie-Enthusiasten ist das Konzept einer Datenbank eine Selbstverständlichkeit. Für viele Menschen ist das Konzept einer Datenbank selbst jedoch ein wenig fremd .... Weiterlesen.
Erste Schritte: Erstellen Sie Ihre Datenbank
Wenn Sie einen Foto-Tweeting-Bot erstellen möchten, müssen Sie zunächst die Bilder sammeln, die Sie freigeben möchten. Dies sollten entweder Ihre eigenen Bilder sein oder Bilder, die Sie unter einer Creative Commons- oder einer anderen Open Source-Lizenz erworben haben.
Sie sollten auch die Namensnennung und andere Informationen notieren, die Sie zu den Bildern hinzufügen möchten. Wir werden später auf diese Informationen zurückkommen, sobald der Bot in Betrieb ist.
Installieren Sie Node.js auf Raspbian
Beginnen Sie mit der Installation von Node.js. Sie sollten bereits einen Raspberry Pi installiert haben, auf dem Raspbian ausgeführt wird. Installieren eines Betriebssystems auf einem Raspberry Pi Installieren eines Betriebssystems auf einem Raspberry Pi Im Folgenden wird beschrieben, wie Sie ein Betriebssystem auf Ihrem Raspberry Pi installieren und Ihr perfektes Betriebssystem klonen Setup für eine schnelle Notfallwiederherstellung. Weiterlesen . Für dieses Projekt empfehlen wir einen Raspberry Pi 2 oder höher. Das Projekt wurde mit dem Raspberry Pi 3 B + getestet. So entscheiden Sie, ob Sie das Raspberry Pi 3 B + -Modell benötigen So entscheiden Sie, ob Sie das Raspberry Pi 3 B + -Modell benötigen Wie viel kostet der Raspberry Pi 3 B +, welche Spezifikation hat er? und wird es Ihre bestehenden Projekte verbessern? Weiterlesen .
Im Terminal (oder über SSH VNC, SSH und HDMI: Drei Optionen zum Anzeigen Ihres Raspberry Pi VNC, SSH und HDMI: Drei Optionen zum Anzeigen Ihres Raspberry Pi Der Raspberry Pi ist ein bemerkenswerter kleiner Computer, dessen Einstellung jedoch zeitaufwändig sein kann (Weitere Informationen), aktualisieren Sie die Systempaketliste und führen Sie ein Upgrade auf die neueste Version durch:
sudo apt-get update sudo apt-get dist-upgrade
Folgen Sie der Eingabeaufforderung auf dem Bildschirm und warten Sie, während Ihr Pi aktualisiert wird. Sobald Sie fertig sind, starten Sie mit
sudo reboot
Wenn Sie fertig sind, laden Sie Node.js mit curl herunter:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Als nächstes installieren Sie es mit
sudo apt-get install -y nodejs
Wenn alles erledigt ist, führen Sie eine Überprüfung durch, um sicherzustellen, dass die Software korrekt installiert wurde. Am einfachsten ist es, nach der Versionsnummer zu suchen:
node -v
Die Antwort sollte so etwas wie v8.11.3 (oder höher) sein. Wenn Sie so etwas sehen, können Sie sicher sein, dass Node.js einsatzbereit ist.
Erstellen Sie Ihren Twitter-Bot
Der nächste Schritt ist die Eingabe des Codes, mit dem der Bot erstellt wird. Beginnen Sie mit der Erstellung eines Verzeichnisses:
mkdir twitterbot
Wechseln Sie dann in das neue Verzeichnis für Ihren Bot:
cd twitterbot
Erstellen Sie hier eine Datei mit dem Namen server.js
sudo nano server.js
Geben Sie in diese Datei eine einzelne Zeile ein:
console.log('I am a Twitter bot!');
Drücken Sie zum Speichern und Beenden Strg + X und führen Sie dann das Skript aus:
node '/home/pi/twitterbot/server.js'
Dies sollte den Ausdruck "Ich bin ein Twitter-Bot!" Zurückgeben. Nachdem Sie bestätigt haben, dass dies funktioniert, ist es Zeit, die Twit-Bibliothek mit npm (dem Node Package Manager ) zu installieren. Stellen Sie sicher, dass dies installiert ist, indem Sie Folgendes eingeben:
npm -v
Wieder sollte eine Versionsnummer angezeigt werden.
Folgen Sie diesem mit:
npm init
Zunächst werden Sie aufgefordert, Informationen zu der von Ihnen erstellten Node.js-App einzugeben. Standardoptionen werden angezeigt (wie folgt), sodass Sie einfach auf die Eingabetaste tippen können, um sie zu akzeptieren. Sie können auch Ihre eigenen Daten eingeben. Sobald diese Konfiguration abgeschlossen ist, werden Sie aufgefordert, die Details mit "Ja" zu bestätigen.
Der nächste Schritt ist die Installation des Twit-Moduls von npm aus.
npm install twit --save
Warten Sie, während die Dateien in das Unterverzeichnis node_modules heruntergeladen werden. Sobald dies erledigt ist, öffne die Datei server.js erneut in nano.
sudo nano server.js
Löschen Sie hier den zuvor eingegebenen Befehl und ersetzen Sie ihn durch:
var fs = require('fs'), path = require('path'), Twit = require('twit'), config = require(path.join(__dirname, 'config.js'));
Speichern und wie zuvor beenden.
Erstelle eine Twitter App
Um einen funktionierenden Twitter-Bot zu erstellen, müssen Sie eine Twitter-App erstellen. Dies ist ein einfacher Vorgang, bei dem Sie sich zunächst für ein neues Twitter-Konto anmelden müssen. Beachten Sie, dass hierfür auch eine Telefonnummer zur Bestätigung des Kontos erforderlich ist. Gehen Sie anschließend zu developer.twitter.com, um die App zu erstellen.
Wenn Sie kein Entwicklerkonto haben, kann dies einige Zeit in Anspruch nehmen, da eine bestimmte Menge an Formularen zum Ausfüllen benötigt wird. Dies ist ein Schritt, den Twitter unternommen hat, um Spam zu vermeiden. Nehmen Sie sich also Zeit und beantworten Sie die Fragen genau.
Klicken Sie auf App erstellen und fügen Sie die erforderlichen Details hinzu. Zum Zeitpunkt des Schreibens wird das Entwicklersystem überarbeitet, sodass Sie möglicherweise einige Tage warten müssen (und einige zusätzliche Fragen beantworten müssen).
Wechseln Sie als Nächstes zur Registerkarte Schlüssel und Token. Suchen Sie unter Berechtigungen die Zugriffsberechtigung und stellen Sie sicher, dass sie auf Lesen und Schreiben eingestellt ist (verwenden Sie Bearbeiten, wenn nicht). Wechseln Sie dann zu Keys and Tokens und notieren Sie Folgendes:
- Verbraucherschlüssel
- Verbrauchergeheimnis
Klicken Sie unter Zugriffstoken auf Erstellen, um Folgendes zu generieren:
- Zugangstoken
- Zugriffs-Token-Geheimnis
Dies sind die API-Schlüssel, die Sie benötigen, um dem Bot Zugriff auf Ihr Twitter-Konto zu gewähren.
Zurück in der Kommandozeile, erstelle config.js in nano:
sudo nano config.js
Fügen Sie Folgendes hinzu
var config = { consumer_key: 'XXXXX', consumer_secret: 'XXXXX', access_token: 'XXXXX', access_token_secret: 'XXXXX' } module.exports = config;
Wenn "XXXXX" angezeigt wird, ersetzen Sie Ihre eigenen entsprechenden API-Schlüsseldetails.
Speichern und beenden Sie, und öffnen Sie dann server.js.
sudo nano server.js
Fügen Sie hier die folgenden Zeilen an das Ende der Datei an:
var T = new Twit(config); T.post('statuses/update', { status: 'My first tweet!' }, function(err, data, response) { console.log(data) });
Es sollte so aussehen:
Speichern und beenden Sie erneut und geben Sie dann in der Befehlszeile Folgendes ein
node server.js
Öffnen Sie Ihr Twitter-Konto im Browser, um die Ergebnisse anzuzeigen:
Sie haben bestätigt, dass der Bot twittert, also ist es Zeit, ihm etwas zu tun!
Erstellen Sie Ihren Ordner mit Bildern
Kopieren Sie zum Twittern von Fotos die von Ihnen gesammelten Bilder in einen Ordner (in der Regel Bilder mit dem Namen). Beginnen Sie mit einem Dutzend oder so.
Kehren Sie als Nächstes zum Dokument server.js zurück:
sudo nano server.js
Entfernen Sie hier den Code, der den Tweet gesendet hat, die Zeile, die mit T.post beginnt ('statuses / update').
Ersetzen Sie dies als Nächstes durch eine Funktion namens random_from_array . Dadurch wird zufällig ein Bild aus dem Bilderordner ausgewählt.
function random_from_array(images){ return images[Math.floor(Math.random() * images.length)]; }
Sobald Sie dies getan haben, müssen Sie eine zweite Funktion hinzufügen, 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!'); } } ); } }); }
Diese Funktion wählt ein Bild nach dem Zufallsprinzip aus dem Bilderordner aus und lädt es nach Auswahl über die Medien- / Upload-API auf Twitter hoch.
Fügen Sie als Nächstes den folgenden Code hinzu. Dies findet das Bilderverzeichnis und entnimmt ihm ein Bild, das alle 60 Sekunden nach dem Zufallsprinzip veröffentlicht wird. Sie können (und sollten) dieses Timing bearbeiten, das im Code mit der Zahl 60000 dargestellt ist. Längere Lücken sind ratsam.
setInterval(function(){ upload_random_image(images); }, 60000); } });
Speichern Sie dies mit Strg + X und anschließend mit Ja, um es zu speichern. (Den vollständigen Code für dieses Projekt finden Sie bei GitHub).
Bei einmaliger Verwendung des Befehls node server.js werden die Fotos zum Tweeten aufgefordert! (Wenn Sie die Posts beenden müssen, drücken Sie Strg + Z, um das Skript server.js abzubrechen.)
Hinzufügen von Text zu Ihren Foto-Tweets
Wenn Sie Ihren Bildern Text hinzufügen müssen, können Sie dazu ein Array verwenden. Das Array verweist auf die Dateinamen der Bilder und listet den Text auf, der hinzugefügt werden soll. Sie können beispielsweise Bilder zuordnen, die Sie nicht aufgenommen haben. Oder Sie könnten einige Fakten oder ein Zitat hinzufügen.
Beginnen Sie mit der Erstellung von images.js
sudo nano images.js
Fügen Sie hier den folgenden Code hinzu. Dies ist ein Array mit zwei Elementen, einer Datei und einer Quelle. Diese enthalten den Dateinamen des Bildes und die Zuordnung (normalerweise eine URL).
var images = [ { file: 'image0001.png', source: 'http://www.example.com/image0001.png' }, { file: 'image0002.png', source: 'http://www.example.com/image0002.png' }, ]
Wiederholen Sie diesen Vorgang für jedes Bild und beenden Sie die Datei images.js mit:
module.exports = images;
Speichern und schließen Sie die Datei, öffnen Sie server.js erneut und fügen Sie Folgendes zur Liste der Variablen hinzu:
images = require(path.join(__dirname, 'images.js'));
Speichern und beenden Sie den Twitter-Bot und starten Sie ihn erneut mit dem Befehl node server.js .
Sie können auch das Feld „Quelle“ verwenden, um Text einzufügen und den Hintergrund des Bildes zu erläutern. Dies kann neben der URL angegeben werden.
Dein erster Twitter-Bot, bereit zur Wiederverwendung!
Inzwischen sollte ein automatisch geposteter Twitter-Bot eingerichtet sein, der Fotos, Fakten und Attribute zu einem bestimmten Thema freigibt.
Zusammenfassend ist der Prozess:
- Sammeln Sie Ihre Fotos
- Installieren Sie Node.js
- Bauen Sie Ihren Twitter-Bot
- Beantragen Sie den Entwicklerstatus auf Twitter
- Erstelle eine Twitter App
- Fügen Sie ein Attributionsarray hinzu
- Fang an zu twittern!
Vielleicht ist das Beste daran, dass der Code verwendet werden kann, um Fotos, Fakten und Attribute zu buchstäblich jedem Thema zu twittern.
Möchten Sie wissen, welche anderen Bots Sie mit einem ähnlichen Setup ausführen könnten? Überprüfen Sie unsere Liste der besten Twitter-Bot-Projekte für den Raspberry Pi 10 Beste Twitter-Bot-Projekte für den Raspberry Pi 10 Beste Twitter-Bot-Projekte für den Raspberry Pi Lesen Sie mehr!
Erfahren Sie mehr über: DIY-Projekt-Tutorials, JavaScript, Raspberry Pi, Twitter.