Accueil

Comment construire une photo sur Twitter Bot avec Raspberry Pi et Node.js

Added 2018-09-12


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?

Tweeter des photos avec un bot

Si vous avez déjà été sur Twitter et vu des comptes qui publient des photos, des faits, des dessins animés, etc., il est très 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.

Commencez: Construisez votre base de données

Si vous souhaitez créer un bot de photos sur Twitter, vous devez commencer par collecter les images que vous souhaitez partager. Celles-ci doivent être soit vos propres images, soit celles que vous avez acquises sous une licence Creative Commons ou une autre licence open source.

Vous devez également noter les attributions et les 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


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 renvoyer 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, il vous sera demandé de confirmer les détails par «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. Ceci 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'),

path = require ('path'),

Twit = require ('twit'),

config = require (path.join (__ dirname, 'config.js'));

Sauvegardez et quittez 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 une fois que cela est fait, dirigez-vous vers developer.twitter.com  pour créer l'application.

Si vous ne possédez pas de compte développeur, cela peut prendre un certain temps, car il faut remplir un certain nombre de formulaires. Il s’agit d’une mesure prise par Twitter pour éviter les spams. Prenez donc 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).

Créer une application sur Twitter

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 vos propres détails de clé d’API correspondants.

Ajoutez vos chaînes de clés générées par Twitter dans le fichier de configuration

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:

Ce code incitera un tweet à être envoyé.

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:

Un tweet de test envoyé en utilisant le code Node.js

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.


fonction random_from_array (images) {
retourne des images [Math.floor (Math.random () * images.length)];
}

Une fois cela fait, vous devrez ajouter une deuxième fonction, upload_random_image :


fonction 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}, fonction (err, données, réponse) {
si (err) {
console.log ('ERROR:');
console.log (err);
}
autre{
console.log ('Image téléchargée!');
console.log ('En train de tweeter ...');

T.post ('statuses / update', {
media_ids: new Array (data.media_id_string)
},
fonction (err, données, réponse) {
si (err) {
console.log ('ERROR:');
console.log (err);
}
autre{
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 , puis Oui pour enregistrer. (Vous pouvez trouver le code complet pour 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 aux images que vous n’avez pas prises. Ou vous pourriez ajouter quelques faits ou une citation.

Un bot Twitter peut poster des photos et du texte

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.example.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 de 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 également utiliser le champ «source» pour inclure du texte, en expliquant l’arrière-plan de la photo. 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 littéralement n'importe quel sujet.






Nuage de tags

Choix de L'éditeur


Thomas Becket

Je suis un écrivain indépendant qui couvre la programmation et les logiciels.
Je suis étudiant en informatique et je m'intéresse à la programmation, aux logiciels et à la technologie
Gadgets technologiques et critiques 2019