Installation de librairie NPM
On doit d'abord installer le module nécessaire pour pouvoir tweeter à partir de notre instance Node.js.
Pour ce faire, on ouvre un processus terminal et on installe une librairie nommée : twitter-api-v2.
La version la plus rĂ©cente de ce module au moment oĂč cet article a Ă©tĂ© publiĂ© (01/02/2024) est la version 1.16.0.
npm install --save twitter-api-v2
Comment générer ses clés, jetons et secrets
Avant de procéder, il vous faut vos clés, jetons et secrets. Pour apprendre comment en générer, veuillez vous référer à cet article : Comment générer ses clés, jetons et secrets
Une fois générées, configurez vos variables d'environnement local et distant avec leurs clés, jetons et secrets.
La procédure pour configurer des variables d'environnement est assez simple et sort de la portée de cet article.
Tweeter une image Ă partir de Node.js Express.js
Code Express.js pour s'authentifier
const { TwitterApi } = require("twitter-api-v2");
Cette ligne importe la classe TwitterApi Ă partir du module twitter-api-v2, qui est une bibliothĂšque client Node.js permettant d'interagir avec l'API v2 de Twitter.
La bibliothÚque fournit un ensemble de méthodes pour accéder facilement aux fonctionnalités de l'API de Twitter, telles que la publication de tweets, le téléchargement de médias, etc.
const client = new TwitterApi({
appKey: process.env.nom_de_variable1,
appSecret: process.env.nom_de_variable2,
accessToken: process.env.nom_de_variable3,
accessSecret: process.env.nom_de_variable4,
});
Cette section initialise une nouvelle instance TwitterApi puis est assignée à « client ».
La classe a besoin d'informations d'authentification pour son constructeur.
Ces informations d'identification sont essentielles pour s'authentifier et réaliser des actions au nom d'un compte Twitter.
Les informations d'identification comprennent :
- appKey (clĂ© API) et appSecret (clĂ© secrĂšte API) : obtenus Ă partir du tableau de bord de votre application Twitter dĂ©veloppeur, ils sont utilisĂ©s pour authentifier l'application Ă partir duquel on fait les requĂȘtes.
- accessToken et accessSecret : liĂ©es au compte utilisateur. Elles permettent Ă l'application d'effectuer des requĂȘtes API au nom de cet utilisateur.
Ces informations d'identification sont extraites de maniÚre sécurisée à partir de variables d'environnement, ce qui constitue une bonne pratique pour gérer des informations sensibles.
Pour apprendre comment générer vos clés d'API, veuillez lire cet article: Twitter API : comment générer ses clés, jetons et secrets
const twitterClient = client.readWrite;
Ceci est un client configuré à partir de l'instances initialisées.
« twitterClient » est issue du « client » et est configuré pour les opérations de lecture et d'écriture, ce qui signifie qu'il peut effectuer des actions telles que tweeter, retweeter ou télécharger des médias.
Pour apprendre comment configurer votre app en mode lecture et Ă©criture, veuillez lire cet article: Twitter API : comment connecter un compte Ă une App
Imports au niveau du point de terminaison
Au niveau du code qui va se charger de tweeter, il faut qu'on fasse les imports nécessaires.
require('dotenv').config();
const { twitterClient } = require("../../../../../miscellaneous/twitter_login/twitter_earnanswers")
Ăvidemment, on commence par configurer nos variables d'environnement. Cela a pour effet de les rendre accessibles au fichier.
Ensuite, on importe l'instance client « twitterClient ». à travers ce dernier, on pourra invoquer la méthode pour tweeter.
Concepts Twitter API pour ajouter une image Ă vos tweets sous Node.js
Le fichier image spécifié par le chemin local dans votre code est utilisé pour localiser le fichier.
à travers l'API Twitter, la méthode « .v1.uploadMedia », le fichier est téléchargé sur les serveurs de Twitter.
Au cours de ce processus de téléchargement, l'image est transférée de votre systÚme de fichiers local ou serveur vers l'infrastructure de stockage cloud de Twitter.
Une fois le téléchargement réussi, Twitter stocke l'image dans son stockage cloud. Ce stockage est géré par Twitter et est conçu pour servir efficacement le contenu multimédia sur sa plateforme.
Une fois l'image stockée, Twitter attribue un identifiant unique à l'image, appelé « mediaId ». Cet identifiant est un moyen pour Twitter de référencer et d'identifier l'image stockée sans avoir besoin de la télécharger à nouveau à chaque utilisation.
Lorsque vous ĂȘtes prĂȘt Ă tweeter l'image, vous invoquez la mĂ©thode « .v2.tweet » et rĂ©fĂ©rencez l'image par son numĂ©ro d'identification « mediaId ».
En fournissant le « mediaId » dans la demande de création de tweet, vous demandez à Twitter d'inclure l'image précédemment téléchargée avec le tweet.
Lorsque le tweet se fait poster, Twitter récupÚre automatiquement l'image à l'aide du « mediaId » fourni depuis son stockage cloud et la joint à votre tweet.
Le tweet, désormais accompagné du texte et de l'image ci-jointe, est publié sur Twitter.
Code Express.js pour télécharger une image
On crée une fonction d'assistance qui se charge de télécharger l'image sur les serveurs de Twitter.
async function uploadMedia(filePath) {
try {
const mediaType = 'image/jpeg'; // Set media type as JPEG
const mediaId = await twitterClient.v1.uploadMedia(filePath, { mimeType: mediaType });
return mediaId;
} catch (error) {
console.error('Failed to upload media:', error);
throw error;
}
}
Le code est simple. La fonction récupÚre le chemin du fichier qu'on souhaite télécharger.
On spécifie le type du fichier. Ici, il s'agit d'un jpeg.
Cette ligne effectue le téléchargement. On utilise l'instance initialisée, notamment sa version API v1, pour appeler la méthode uploadMedia.
La fonction retourne l'ID de référence du fichier jadis téléchargé sur les serveurs de Twitter.
Code Express.js pour faire un tweet accompagné d'une image
Ci-bas, vous voyez le code du point de terminaison sous forme d'intergiciel.
async function mid1(req, res, next) {
if (res.locals.default_problem_response.status !== 200) {
return next();
}
const imagePath = './public/img/jpeg/image3.jpeg';
try {
const mediaId = await uploadMedia(imagePath);
await twitterClient.v2.tweet({
text: `Hello world! Log ID ${res.locals.logId}`,
media: {
media_ids: [mediaId]
}
});
console.log('Tweeted with an image successfully.');
} catch (error) {
console.log(error);
res.locals.default_problem_response = {
status: error.statusCode,
message: error.message
};
}
return next();
}
L'intergiciel invoque « uploadMedia ». L'image se retrouve sur Twitter et pourra ĂȘtre tweetĂ©e.
La méthode (« .tweet ») de la version deux de l'instance client « twitterClient.v2 » permet d'opérer l'action de tweeter.
Remarquez qu'au moment de l'invocation, on lui met un objet avec média comme propriété, avec l'ID de référence de l'image.
Grùce à ce référencement, l'API accompagne notre texte Tweet avec l'image.
Conclusion
Veuillez vous référer a notre blog central qui présente la fiche de route pour construire un bot Twitter. Liens pour créer un bot Twitter personnalisé IA
Prochainement, on va introduire l'API d'OpenAI pour générer le contenu des tweets. Démarrer avec l'API d'OpenAI