FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Tutoriel : Créez un bot Twitter automatique pour tweeter des photos avec Raspberry Pi et Node.js

Vous souhaitez automatiser vos publications sur Twitter (désormais X) pour partager des images utiles ? Créez un bot qui tweete des photos accompagnées de descriptions pertinentes. Hébergez-le sur un Raspberry Pi avec Node.js pour une solution fiable et économique. Suivez ce guide détaillé, testé sur Raspberry Pi 3B+ et versions récentes.

Pourquoi créer un bot Twitter ?

Tutoriel : Créez un bot Twitter automatique pour tweeter des photos avec Raspberry Pi et Node.js

Sur Twitter, de nombreux comptes automatisés publient photos, faits ou illustrations thématiques, attirant une audience fidèle. Au-delà des likes et retweets, ce projet renforce vos compétences en programmation Node.js et automation IoT.

Nous avons déjà couvert un bot basique en Python sur Raspberry Pi. Ici, utilisons Node.js pour un bot photo-tweeter : images de la Première Guerre mondiale avec citations et attributions, stockées dans un tableau simple.

Premiers pas : préparez votre base d'images

Collectez des images libres de droits (vos propres photos, Creative Commons ou open source). Notez attributions et descriptions pour chaque. Nous les intégrons plus tard.

Installez Node.js sur Raspberry Pi OS

Assurez-vous d'avoir un Raspberry Pi 2 ou supérieur (testé sur Pi 3B+ et Pi 5) avec Raspberry Pi OS installé.

Dans le terminal (ou SSH), mettez à jour le système :

sudo apt update && sudo apt upgrade -y

Redémarrez :

sudo reboot

Téléchargez et installez Node.js LTS (version 20.x recommandée pour 2024) :

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Vérifiez l'installation :

node -v

Vous devriez voir v20.x.x ou supérieur. npm est inclus.

Créez votre bot Twitter

Créez un répertoire :

mkdir twitterbot && cd twitterbot

Initialisez le projet :

npm init -y

Installez Twit (note : bibliothèque legacy pour API v1.1 ; pour API v2 moderne, préférez twitter-api-v2) :

npm install twit

Créez server.js :

nano server.js

Ajoutez un test :

console.log('Bot Twitter prêt !');

Exécutez : node server.js. Succès confirmé.

Créez une application Twitter (X)

Créez un compte Twitter dédié. Accédez à developer.twitter.com, demandez l'accès développeur (soumettez un usage légitime anti-spam).

Créez une app, définissez permissions "Lecture + Écriture". Générez :

  • Consumer Key / Secret
  • Access Token / Secret

Créez config.js :

nano config.js
module.exports = {
  consumer_key: 'VOTRE_CLE',
  consumer_secret: 'VOTRE_SECRET',
  access_token: 'VOTRE_TOKEN',
  access_token_secret: 'VOTRE_TOKEN_SECRET'
};
Tutoriel : Créez un bot Twitter automatique pour tweeter des photos avec Raspberry Pi et Node.js

Dans server.js, ajoutez :

const Twit = require('twit');
const config = require('./config.js');
const T = new Twit(config);

T.post('statuses/update', { status: 'Mon premier tweet via bot !' }, (err, data) => {
  console.log(data);
});

Exécutez node server.js. Vérifiez Twitter.

Tutoriel : Créez un bot Twitter automatique pour tweeter des photos avec Raspberry Pi et Node.js

Créez votre dossier d'images

Créez images/ et copiez 10-12 images (formats supportés : JPG, PNG <5Mo).

Dans server.js, ajoutez (après requires) :

const fs = require('fs');
const path = require('path');

function randomFromArray(images) {
  return images[Math.floor(Math.random() * images.length)];
}

function uploadRandomImage() {
  const images = fs.readdirSync(path.join(__dirname, 'images/'));
  const imagepath = path.join(__dirname, '/images/' + randomFromArray(images));
  const b64content = fs.readFileSync(imagepath, { encoding: 'base64' });

  T.post('media/upload', { media_data: b64content }, (err, data, response) => {
    if (err) { console.error('Erreur:', err); return; }
    console.log('Image uploadée ! Tweeting...');
    T.post('statuses/update', {
      media_ids: [data.media_id_string]
    }, (err, data, response) => {
      if (err) { console.error('Erreur:', err); } else {
        console.log('Tweet posté !');
      }
    });
  });
}

setInterval(uploadRandomImage, 60000); // Toutes les 60s - Augmentez pour respecter limites API
Tutoriel : Créez un bot Twitter automatique pour tweeter des photos avec Raspberry Pi et Node.js

Exécutez node server.js. Ctrl+C pour arrêter.

Ajoutez du texte à vos tweets

Créez images.js :

nano images.js
module.exports = [
  { file: 'image1.jpg', text: 'Description #1. Source: https://example.com/1' },
  { file: 'image2.jpg', text: 'Description #2. Source: https://example.com/2' }
  // Ajoutez vos images
];

Modifiez uploadRandomImage pour utiliser images.js et tweeter { status: img.text, media_ids: [...] }.

Tutoriel : Créez un bot Twitter automatique pour tweeter des photos avec Raspberry Pi et Node.js

Votre bot Twitter est prêt !

Récapitulatif :

  • Rassemblez images + données
  • Installez Node.js
  • Configurez app Twitter
  • Déployez le code
  • Tweetez !

Adaptez à tout thème. Pour persistance, utilisez PM2 (npm i -g pm2; pm2 start server.js). Consultez nos autres projets Raspberry Pi pour bots avancés.

Note : API Twitter v1.1 dépréciée ; migrez vers v2 pour fiabilité future.

[]