Comment construire une photo tweetant sur Twitter avec Raspberry Pi et Node.js
Vous cherchez un moyen de rendre Twitter plus utile, ne serait-ce que pour les autres? Une solution consiste à créer un bot Twitter automatisé qui tweete des images avec des descriptions utiles. Vous pouvez le faire manuellement… ou vous pouvez le construire avec Node.js et l’héberger sur un Raspberry Pi. Lisez la suite pour savoir comment.
Pourquoi construire un bot Twitter??
Si vous avez déjà visité Twitter et vu des comptes qui publient des photos, des faits, des dessins animés, etc., il est extrêmement probable que ceux-ci soient automatisés. C'est un excellent moyen de former un public de personnes intéressées par le même sujet..
Mais il y a une autre raison, au-delà des retweets et des suivants. Construire un bot Twitter vous apprendra des compétences utiles en programmation. Nous avons déjà vu comment créer un bot Twitter de base avec Python. Comment créer un bot Twitter pour la framboise Comment construire un bot pour Twitter framboise Twitter est le plus grand répertoire mondial de messages courts émanant de personnes qui n'ont rien à dire - et maintenant vous vous aussi pouvez contribuer à ce projet épique avec un bot Twitter automatisé, optimisé par votre Raspberry… Read More (également sur un Raspberry Pi), mais cette fois, nous adoptons une approche différente.
Dans ce projet, nous allons utiliser Node.js pour créer un robot de photo-tweet sur un Raspberry Pi. Les photos seront des photos de la Première Guerre mondiale, accompagnées d’une phrase courte et d’une attribution). Ces informations seront stockées dans un tableau, une base de données de base. Qu'est-ce qu'une base de données? [MakeUseOf explique] Alors, quelle est une base de données, de toute façon? [MakeUseOf explique] Pour un programmeur ou un passionné de technologie, le concept de base de données est quelque chose qui peut vraiment être pris pour acquis. Cependant, pour beaucoup de gens, le concept d'une base de données est un peu étranger… Lire la suite .
Commencez: Construisez votre base de données
Si vous souhaitez créer un bot de photos sur Twitter, commencez par collecter les images que vous souhaitez partager. Celles-ci doivent être soit vos propres images, soit celles que vous avez acquises sous un Creative Commons ou une autre licence open source..
Vous devez également garder note de l'attribution et des autres informations que vous souhaitez utiliser avec les images. Nous y reviendrons plus tard, une fois que le bot sera opérationnel..
Installer Node.js sur Raspbian
Commencez par installer Node.js. Vous devez déjà avoir un Raspberry Pi en marche et installer Raspbian. Comment installer un système d'exploitation sur votre Raspberry Pi Comment installer un système d'exploitation sur votre Raspberry Pi Voici comment installer un nouveau système d'exploitation sur votre Pi - et comment cloner votre configuration parfaite pour une récupération après sinistre rapide. Lire la suite . Pour ce projet, nous recommandons un Raspberry Pi 2 ou une version ultérieure; le projet a été testé sur le Raspberry Pi 3 B + Comment décider si vous avez besoin du nouveau modèle Raspberry Pi 3 B + Comment décider si vous avez besoin du nouveau modèle Raspberry Pi 3 B + Le nouveau Raspberry Pi 3 B + a été publié. Combien cela coûte-t-il, quelle spécification de base a-t-il et améliorera-t-il vos projets existants? Nous avons des réponses. Lire la suite .
Dans le terminal (ou via SSH VNC, SSH et HDMI: Trois options pour visualiser votre Raspberry Pi. VNC, SSH et HDMI: Trois options pour afficher votre Raspberry Pi. Le Raspberry Pi est un petit ordinateur remarquable, mais sa configuration peut prendre beaucoup de temps Lisez-le), mettez à jour la liste des paquetages du système et effectuez la mise à niveau vers la version la plus récente:
sudo apt-get update sudo apt-get dist-upgrade
Suivez les instructions à l'écran et attendez que votre Pi se mette à jour. Une fois que vous avez terminé, redémarrez avec
redémarrage sudo
Lorsque vous avez terminé, utilisez curl pour télécharger Node.js:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Ensuite, installez-le avec
sudo apt-get install -y nodejs
Lorsque tout est terminé, effectuez une vérification pour vous assurer que le logiciel a été installé correctement. Le plus simple est de vérifier le numéro de version:
noeud -v
La réponse devrait être quelque chose comme v8.11.3 (ou supérieur). Si vous voyez quelque chose comme ça, vous pouvez être sûr que Node.js est prêt à être utilisé..
Construisez votre bot Twitter
La prochaine étape consiste à saisir le code qui créera le bot. Commencez par créer un répertoire:
mkdir twitterbot
Ensuite, changez-le dans le nouveau répertoire de votre bot:
cd twitterbot
Ici, créez un fichier appelé server.js
sudo nano server.js
Dans ce fichier, entrez une seule ligne:
console.log ('Je suis un bot Twitter!');
presse Ctrl + X pour enregistrer et quitter, puis exécutez le script:
noeud '/home/pi/twitterbot/server.js'
Cela devrait retourner la phrase “Je suis un bot Twitter!”. Maintenant que vous avez confirmé que cela fonctionne, il est temps d'installer la bibliothèque Twit avec npm (la Node Package Manager). Assurez-vous que ceci est installé en entrant:
npm -v
Encore une fois, vous devriez voir un numéro de version affiché.
Suivez ceci avec:
npm init
Cela commence par vous demander des informations sur l'application Node.js que vous créez. Les options par défaut sont affichées (comme ceci) afin que vous puissiez simplement appuyer sur Entrée pour les accepter. Vous pouvez également choisir de saisir vos propres détails. Une fois cette configuration terminée, vous serez invité à confirmer les détails avec “Oui”.
La prochaine étape consiste à installer le module Twit à partir de npm.
npm installer twit --save
Patientez pendant le téléchargement des fichiers dans le sous-répertoire node_modules. Une fois que cela est fait, rouvrez le fichier server.js dans nano.
sudo nano server.js
Ici, supprimez la commande que vous avez entrée précédemment et remplacez-la par:
var fs = require ('fs'), chemin = require ('chemin'), Twit = require ('twit'), config = require (chemin.join (__ nomr, 'config.js'));
Sauvegarder et quitter comme avant.
Créer une application Twitter
Pour créer un bot Twitter fonctionnel, vous devez créer une application Twitter. Il s’agit d’un processus simple, qui nécessite d’abord de créer un compte Twitter. Notez que cela nécessite également un numéro de téléphone pour vérifier le compte, et ensuite, rendez-vous sur developer.twitter.com pour créer l'application..
Si vous ne possédez pas de compte de développeur, cela peut prendre un certain temps, car un certain remplissage de formulaire est nécessaire. C'est une étape que Twitter a prise pour éviter le spam. Prenez votre temps et répondez aux questions avec précision..
Cliquez sur Créer une application, et ajoutez les détails comme demandé. Au moment de la rédaction du présent document, le système de développement est en cours de révision. Vous devrez peut-être attendre quelques jours (et répondre à quelques questions supplémentaires)..
Ensuite, passez à la Clés et jetons onglet, et sous Les permissions trouvez le droit d'accès et assurez-vous qu'il est réglé sur Lire et écrire (utilisation modifier si non). Puis passez aux clés et aux jetons et notez les éléments suivants:
- La clé du consommateur
- Secret du consommateur
Sous Jeton d'accès, cliquez sur Créer générer:
- Jeton d'accès
- Secret de jeton d'accès
Ce sont les clés d’API dont vous aurez besoin pour donner au bot l’accès à votre compte Twitter..
De retour dans la ligne de commande, créez config.js dans nano:
sudo nano config.js
Ajouter ce qui suit
var config = consommateur_key: 'XXXXX', consommateur_secret: 'XXXXX', access_token: 'XXXXX', access_token_secret: 'XXXXX' module.exports = config;
Où il se lit 'XXXXX', remplacez les détails de votre clé API correspondante.
Enregistrez et quittez, puis ouvrez server.js.
sudo nano server.js
Ici, ajoutez les lignes suivantes à la fin du fichier:
var T = nouveau Twit (config); T.post ('statuses / update', status: 'Mon premier tweet!', Fonction (err, données, réponse) console.log (données));
Ça devrait ressembler à ça:
Encore une fois, enregistrez et quittez, puis dans la ligne de commande, entrez
noeud serveur.js
Ouvrez votre compte Twitter dans le navigateur pour voir les résultats:
Vous avez confirmé que le bot tweetait, il est donc temps de lui donner quelque chose à faire.!
Créez votre dossier d'images
Pour tweeter des photos, copiez les images que vous avez collectées dans un dossier (généralement nommé images). Commencez avec une douzaine.
Revenez ensuite au document server.js:
sudo nano server.js
Ici, supprimez le code qui a envoyé le tweet, la ligne commençant par T.post ('statuses / update').
Ensuite, remplacez-le par une fonction, appelée random_from_array. Cela sélectionnera une image au hasard dans le dossier images..
function random_from_array (images) retourne les images [Math.floor (Math.random () * images.length)];
Une fois cela fait, vous devrez ajouter une deuxième fonction., upload_random_image:
function upload_random_image (images) console.log ('Ouverture d'une image…'); var image_path = path.join (__ dirname, '/ images /' + random_from_array (images)), b64content = fs.readFileSync (image_path, encoding: 'base64'); console.log ('Téléchargement d'une image…'); T.post ('media / upload', media_data: b64content, function (err, données, réponse) if (err) console.log ('ERROR:'); console.log (err); else console.log ('Image téléchargée!'); console.log ('Now tweeting it…'); T.post ('statuses / update', media_ids: new Array (data.media_id_string), function (err, data , réponse) if (err) console.log ('ERROR:'); console.log (err)) else console.log ('Posté une image!');)
Cette fonction sélectionne une image au hasard dans le dossier images et, une fois sélectionnée, est téléchargée sur Twitter à l'aide de l'API médias / envoi..
Ensuite, ajoutez le code suivant. Celui-ci trouvera le répertoire des images et en prendra une image, en en affichant une au hasard toutes les 60 secondes. Vous pouvez (et devriez) éditer ce minutage, qui est représenté dans le code avec la figure 60000. Des intervalles plus longs sont conseillés.
setInterval (function () upload_random_image (images);, 60000); );
Enregistrer ceci avec Ctrl + X, alors oui pour sauver. (Vous pouvez trouver le code complet de ce projet sur GitHub).
Un usage unique du noeud serveur.js La commande invitera ensuite les photos à commencer à tweeter! (Si vous avez besoin de mettre fin aux messages, appuyez sur Ctrl + Z pour annuler le script server.js.)
Ajouter du texte à vos tweets photo
Si vous devez ajouter du texte à vos images, vous pouvez utiliser un tableau. Le tableau fait référence aux noms de fichiers des images et répertorie le texte à ajouter. Par exemple, vous pouvez ajouter une attribution à des images que vous n'avez pas prises. Ou vous pourriez ajouter quelques faits ou une citation.
Commencez par créer images.js
sudo nano images.js
Ici, ajoutez le code suivant. Ceci est un tableau, avec deux éléments, fichier et source. Ceux-ci contiennent le nom de fichier de l'image et l'attribution (généralement une URL).
var images = [fichier: 'image0001.png', source: 'http://www.example.com/image0001.png', fichier: 'image0002.png', source: 'http: // www. exemple.com/image0002.png ',]
Répétez autant que nécessaire pour chaque image, puis fermez le fichier images.js avec:
module.exports = images;
Enregistrez et fermez le fichier, ouvrez à nouveau server.js et ajoutez-le à la liste des variables:
images = require (path.join (__ dirname, 'images.js'));
Enregistrez et quittez, puis redémarrez le bot Twitter avec le noeud serveur.js commande encore une fois.
Vous pouvez aussi utiliser le “la source” champ pour inclure du texte, expliquant le fond de l'image. Cela peut être inclus à côté de l'URL.
Votre premier bot Twitter, prêt à être réutilisé!
A présent, vous devriez avoir un bot Twitter auto-post-up opérationnel, partageant des photos, des faits et des attributs sur votre sujet donné.
Pour résumer, le processus est le suivant:
- Ramassez vos photos
- Installez Node.js
- Construisez votre bot Twitter
- Demander le statut de développeur sur Twitter
- Créer une application Twitter
- Ajouter un tableau d'attribution
- Commencez à tweeter!
La meilleure chose à ce sujet est peut-être que le code peut être utilisé pour tweeter des photos, des faits et des attributs sur pratiquement n'importe quel sujet..
Vous voulez savoir quels autres robots pourraient fonctionner avec une configuration similaire? Consultez notre liste des meilleurs projets de bot Twitter pour Raspberry Pi 10 Meilleurs projets de bot Twitter pour Raspberry Pi 10 Meilleurs projets de bot Twitter pour Raspberry Pi En savoir plus !
Pour en savoir plus sur: les tutoriels de projets DIY, JavaScript, Raspberry Pi, Twitter.