Wie man ein Twitter-Bot für Tweets mit Raspberry Pi und Node.js erstellt
Suchen Sie nach einem Weg, um Twitter nützlicher zu machen, wenn auch nur für andere? Eine Möglichkeit ist, einen automatisierten Twitter-Bot zu erstellen, der Bilder mit nützlichen Beschreibungen twittert. Sie können dies manuell tun ... oder Sie können es mit Node.js erstellen und auf einem Raspberry Pi hosten. Lesen Sie weiter, um herauszufinden, wie.
Warum einen Twitter-Bot bauen??
Wenn Sie schon einmal bei Twitter waren und Konten gesehen haben, auf denen Fotos oder Fakten, Cartoons usw. veröffentlicht werden, ist es höchst wahrscheinlich, dass diese automatisiert sind. Es ist eine großartige Möglichkeit, ein Publikum von Menschen zu gewinnen, die sich für dasselbe Thema interessieren.
Es gibt jedoch noch einen anderen Grund, über Retweets hinaus und folgt. Wenn Sie einen Twitter-Bot erstellen, werden Sie einige nützliche Programmierkenntnisse erfahren. Wir haben bereits zuvor untersucht, wie man einen einfachen Twitter-Bot mit Python baut. Wie man einen Himbeer-Pi-Twitter-Bot baut. Wie man einen Himbeer-Pi-Twitter-Bot baut Auch kann mit einem automatisierten Twitter-Bot, der von Ihrem Raspberry… Read More (auch auf einem Raspberry Pi) unterstützt wird, zu diesem epischen Projekt beitragen, aber dieses Mal verfolgen wir einen anderen Ansatz.
In diesem Projekt werden wir Node.js verwenden, um einen Foto-Tweeting-Bot auf einem Raspberry Pi zu erstellen. Bei den Fotos handelt es sich um Fotos aus dem Ersten Weltkrieg, begleitet von einem kurzen Satz und einer Zuschreibung. Diese Informationen werden in einem Array, einer Basisdatenbank, gespeichert. Was ist eine Datenbank? [MakeUseOf erklärt] Also, was ist eine Datenbank überhaupt? [MakeUseOf Explains] Für einen Programmierer oder einen Technologie-Enthusiasten ist das Konzept einer Datenbank wirklich selbstverständlich. Für viele Leute ist das Konzept einer Datenbank selbst jedoch etwas fremd… Lesen Sie weiter .
Erste Schritte: Erstellen Sie Ihre Datenbank
Wenn Sie einen Foto-Tweet-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 solche, die Sie unter einer Creative Commons- oder einer anderen Open-Source-Lizenz erworben haben.
Sie sollten sich auch die Attribution 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 läuft.
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 installiert ist. So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Im Folgenden wird beschrieben, wie Sie ein neues Betriebssystem auf Ihrem Pi installieren und ausführen - und wie um Ihr perfektes Setup für eine schnelle Notfallwiederherstellung zu klonen. Weiterlesen . Für dieses Projekt empfehlen wir einen Raspberry Pi 2 oder höher; Das Projekt wurde auf dem Raspberry Pi 3 B + getestet. So entscheiden Sie, ob Sie das neue Raspberry Pi 3 B + -Modell benötigen. So entscheiden Sie, ob Sie das neue Raspberry Pi 3 B + -Modell benötigen. Das neue Raspberry Pi 3 B + wurde veröffentlicht. Wie viel kostet es, welche genaue Spezifikation hat es und verbessert es Ihre bestehenden Projekte? Wir haben Antworten. 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, es kann jedoch zeitaufwändig sein, ihn einzustellen und installieren Sie es mit Ihrem Monitor. Weitere Informationen), aktualisieren Sie die Liste der Systempakete und aktualisieren Sie auf die neueste Version:
Sudo Apt-Get Update Sudo Apt-Get Dist-Upgrade
Folgen Sie der Aufforderung auf dem Bildschirm und warten Sie, während Ihr Pi aktualisiert wird. Wenn Sie fertig sind, starten Sie neu mit
Sudo Neustart
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, überprüfen Sie, ob die Software korrekt installiert wurde. Am einfachsten prüfen Sie die Versionsnummer:
Knoten -v
Die Antwort sollte etwa v8.11.3 (oder höher) sein. Wenn Sie so etwas sehen, können Sie sicher sein, dass Node.js einsatzbereit ist.
Bauen Sie Ihren Twitter-Bot
Als nächstes müssen Sie den Code eingeben, mit dem der Bot erstellt wird. Beginnen Sie mit dem Erstellen eines Verzeichnisses:
mkdir twitterbot
Dann ändern Sie es 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 dieser Datei eine einzelne Zeile ein:
console.log ("Ich bin ein Twitter-Bot!");
Drücken Sie Strg + X Zum Speichern und Beenden führen Sie das Skript aus:
Knoten '/home/pi/twitterbot/server.js'
Dies sollte den Satz zurückgeben “Ich bin ein Twitter-Bot!”. Nachdem Sie bestätigt haben, dass dies funktioniert, ist es Zeit, die Twit-Bibliothek mit zu installieren npm (das Knotenpaket-Manager). Stellen Sie sicher, dass dies installiert ist, indem Sie Folgendes eingeben:
npm -v
Wieder sollte eine Versionsnummer angezeigt werden.
Folge diesem mit:
npm init
Zunächst werden Sie zur Eingabe von Informationen über die Node.js-App aufgefordert, die Sie erstellen. Standardoptionen werden angezeigt (so), sodass Sie einfach auf Eingabe tippen können, um sie zu akzeptieren. Sie können auch Ihre eigenen Details eingeben. Sobald diese Konfiguration abgeschlossen ist, werden Sie aufgefordert, die Details mit zu bestätigen “Ja”.
Als nächstes müssen Sie das Twit-Modul von npm aus installieren.
npm install twit --save
Warten Sie, bis die Dateien in das Unterverzeichnis node_modules heruntergeladen wurden. Sobald dies erledigt ist, öffnen Sie 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 = required ('fs'), path = required ('path'), Twit = required ('twit'), config = required (path.join (__ dirname, 'config.js'));
Speichern und beenden Sie wie zuvor.
Erstellen Sie eine Twitter-App
Um einen funktionierenden Twitter-Bot zu erstellen, müssen Sie eine Twitter-App erstellen. Dies ist ein einfacher Vorgang, für den Sie sich zunächst für einen neuen Twitter-Account anmelden müssen. Beachten Sie, dass dazu auch eine Telefonnummer erforderlich ist, um das Konto zu bestätigen. Wenn dies geschehen ist, gehen Sie zu developer.twitter.com, um die App zu erstellen.
Wenn Sie nicht über ein Entwicklerkonto verfügen, kann dies einige Zeit dauern, da bestimmte Formulare ausgefüllt werden müssen. Dies ist ein Schritt, den Twitter unternommen hat, um Spam zu vermeiden. Nehmen Sie sich Zeit und beantworten Sie die Fragen genau.
Klicken App erstellen, und fügen Sie die Details wie gewünscht hinzu. Zum Zeitpunkt des Schreibens wird das Entwicklersystem einer Überholung unterzogen. Daher müssen Sie möglicherweise einige Tage warten (und einige zusätzliche Fragen beantworten)..
Als nächstes wechseln Sie zu Schlüssel und Token Tab und unter Berechtigungen finde das Zugangsberechtigung und stellen Sie sicher, dass es eingestellt ist Lesen und Schreiben (benutzen Bearbeiten wenn nicht). Wechseln Sie dann zu Schlüssel und Token und notieren Sie Folgendes:
- Consumer Key
- Consumer Secret
Klicken Sie unter Zugriffstoken auf Erstellen generieren:
- Zugangstoken
- Zugriff auf Token Secret
Dies sind die API-Schlüssel, die Sie benötigen, um dem Bot Zugriff auf Ihr Twitter-Konto zu gewähren.
Erstellen Sie in der Befehlszeile wieder 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;
Ersetzen Sie an den Stellen, an denen 'XXXXX' steht, die entsprechenden entsprechenden API-Schlüsseldetails.
Speichern und beenden Sie die Datei und öffnen Sie server.js.
sudo nano server.js
Hängen Sie hier die folgenden Zeilen an das Ende der Datei an:
var T = new Twit (config); T.post ('statuses / update', status: 'Mein erster Tweet!', Function (err, data, response) console.log (data));
Es sollte so aussehen:
Speichern und schließen Sie es erneut und geben Sie dann in der Befehlszeile ein
Knoten server.js
Öffnen Sie Ihr Twitter-Konto im Browser, um die Ergebnisse anzuzeigen:
Sie haben bestätigt, dass der Bot twittert, also ist es an der Zeit, etwas zu tun!
Erstellen Sie Ihren Ordner mit Bildern
Kopieren Sie zum Sammeln von Fotos die gesammelten Bilder in einen Ordner (normalerweise mit dem Namen) Bilder). Beginnen Sie mit einem Dutzend.
Kehren Sie als Nächstes zum server.js-Dokument 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').
Als nächstes ersetzen Sie dies durch eine aufgerufene Funktion random_from_array. Dadurch wird ein zufälliges Bild aus dem Bilderordner ausgewählt.
Funktion random_from_array (images) Bilder zurückgeben [Math.floor (Math.random () * images.length)];
Wenn Sie dies getan haben, müssen Sie eine zweite Funktion hinzufügen, upload_random_image:
function upload_random_image (images) console.log ('Bild öffnen…'); var image_path = path.join (__ dirname, '/ images /' + random_from_array (images)), b64content = fs.readFileSync (image_path, encoding: 'base64'); console.log ('Bild hochladen ...'); T.post ('media / upload', media_data: b64content), Funktion (Fehler, Daten, Antwort) if (Fehler) console.log ('ERROR:'); console.log (err); else console.log ('Bild hochgeladen!'); console.log ('Jetzt twittern…'); T.post ('statuses / update', media_ids: neues Array (data.media_id_string), Funktion (err, data , Antwort) if (err) console.log ('ERROR:'); console.log (err); else console.log ('Ein Bild hochgeladen!');;;);
Diese Funktion wählt ein Bild nach dem Zufallsprinzip aus dem Bilderordner und wird nach der Auswahl mit der Medien- / Upload-API auf Twitter hochgeladen.
Als nächstes fügen Sie den folgenden Code hinzu. Dadurch wird das Bilderverzeichnis gefunden und daraus ein Bild erstellt, das alle 60 Sekunden ein beliebiges Bild erstellt. Sie können (und sollten) dieses Timing bearbeiten, das im Code mit der Zahl 60000 dargestellt wird. Längere Lücken sind ratsam.
setInterval (function () upload_random_image (images);, 60000); );
Speichern Sie dies mit Ctrl + X, dann Ja zum Speichern. (Den vollständigen Code für dieses Projekt finden Sie bei GitHub.).
Eine einmalige Verwendung der Knoten server.js Der Befehl fordert dann die Fotos auf, mit dem Tweeten zu beginnen! (Wenn Sie die Beiträge beenden müssen, drücken Sie Strg + Z um das server.js-Skript abzubrechen.)
Hinzufügen von Text zu Ihren Foto-Tweets
Wenn Sie Ihren Bildern Text hinzufügen möchten, können Sie dies mit einem Array tun. Das Array verweist auf die Dateinamen der Bilder und listet den hinzuzufügenden Text auf. Zum Beispiel können Sie den Bildern, die Sie nicht aufgenommen haben, eine Zuordnung hinzufügen. Oder Sie fügen einige Fakten oder ein Zitat hinzu.
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, Datei und Quelle. Diese enthalten den Dateinamen des Bildes und die Zuordnung (normalerweise eine URL)..
var images = [file: 'image0001.png', Quelle: 'http://www.example.com/image0001.png', Datei: 'image0002.png', Quelle: 'http: // www. example.com/image0002.png ',]
Wiederholen Sie den Vorgang nach Bedarf für jedes Bild, und beenden Sie die Datei images.js mit:
module.exports = Bilder;
Speichern und schließen Sie die Datei, öffnen Sie server.js erneut und fügen Sie dies der Liste der Variablen hinzu:
images = required (path.join (__ dirname, 'images.js'));
Speichern und beenden Sie den Twitter-Bot mit Knoten server.js Befehl noch einmal.
Sie können auch die verwenden “Quelle” Textfeld, um den Hintergrund des Bildes zu erläutern. Dies kann neben der URL angegeben werden.
Dein erster Twitter Bot, bereit zur Wiederverwendung!
Inzwischen sollten Sie einen automatischen Twitter-Bot bereitstellen, der Fotos, Fakten und Attribute zu Ihrem Thema freigibt.
Zusammenfassend ist der Prozess:
- Sammeln Sie Ihre Fotos
- Installieren Sie Node.js
- Bauen Sie Ihren Twitter-Bot
- Beantragen Sie den Entwicklerstatus bei Twitter
- Erstellen Sie eine Twitter-App
- Fügen Sie ein Attributierungsfeld hinzu
- Mit dem Tweeten beginnen!
Das Beste daran ist vielleicht, dass der Code verwendet werden kann, um Fotos, Fakten und Attribute zu jedem Thema zu twittern.
Möchten Sie wissen, welche anderen Bots Sie mit einem ähnlichen Setup ausführen könnten? Sehen Sie sich unsere Liste der besten Twitter-Bot-Projekte für die Raspberry Pi 10 an !
Erfahren Sie mehr über: DIY Project Tutorials, JavaScript, Raspberry Pi, Twitter.