Twitter API et Node.js, Twitter API et Node, API Twitter Node.js, Twitter API Node.js, Twitter API Node, API Twitter Node earnanswers.com En-tête de blog de style fresque mêlant éléments anciens et modernes, présentant un globe avec des connexions réseau.

Twitter API et Node.js

Publié: Édité: Réseau social fr
Table des Matières
  1. Point de terminaison HTTP(S) Express.js
  2. Installation de librairie NPM
  3. Note : les autres librairies Twitter
  4. Un exemple d'idée d'implémentation
  5. Comment générer ses clés, jetons et secrets
  6. Le code Express.js pour faire un tweet
  7. Open AI et tweetez un fichier média

Point de terminaison HTTP(S) Express.js

On est maintenant au stade d’implémentation du code pour notre point de terminaison.

Le point de terminaison va tweeter un tweet test.

En activant la tâche récurrente cron, l'idée est que le serveur tweete de façon automatisée. Referez-vous à cet article pour en apprendre plus : Tâches récurrentes sur Ubuntu : Cron

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

Note : les autres librairies Twitter

J'avais passé énormément de temps à essayer de faire marcher différents modules. Tous les autres sont soit dysfonctionnels, manquent de documentation ou trop complexes. Par conséquent, je recommande fortement d'utiliser twitter-api-v2.

Un exemple d'idée d'implémentation

Le descriptif de mon implémentation a pour objectif d'illustrer un exemple.

Le cycle de vie d'une requête HTTP(S) de mon implémentation est comme suit :

  • Récupère le log ID
  • Configure la réponse de succès et de défaut
  • Récupère le jeton de mon environnement et le jeton envoyé
  • Comparaison des jetons. En cas de différence entre les jetons, le code change la réponse en status 403 et message « Le jeton de cURL ne correspond pas à la valeur de jeton correcte pour déclencher le point de terminaison. »
  • l'exécution du tweet « `Hello world! Log ID ${res.locals.logId}`». En cas d'erreur, on change le statut et le message en adéquation avec l'erreur générée par le module twitter-api-v2
  • Au cas où la réponse est de status 200 ou pas, on imprime un message dans le journal (« log file »).
  • Enfin, le contrôleur retourne la réponse en fonction du statut et message le plus récent.

Vous pouvez en apprendre plus à ce lien : La meilleure conception : cron, Node.js, Express et Ubuntu

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.

Le code Express.js pour faire un tweet

Maintenant que vous disposez de la librairie twitter-api-v2 et avez accès à vos variables d'environnement à partir de votre code express, on est prêt à intégrer le code dans votre point de terminaison.

Le code pour s'authentifier l'App et pour obtenir l'objet contenant la méthode permettant de tweeter :

const { TwitterApi } = require("twitter-api-v2");

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,
});

const bearer = new TwitterApi(process.env.nom_de_variable5);

const twitterClient = client.readWrite;
const twitterBearer = bearer.readOnly;

module.exports = { twitterClient };



On importe l'objet (« twitterClient ») permettant de tweeter dans le code de notre point de terminaison :

require('dotenv').config();
const { twitterClient } = require("le_chemin_vers_le_fichier_du_code_ci-haut>")

async function mid1(req, res, next) {

  if (res.locals.default_problem_response.status !== 200) {
    return next()
  }

  const tweet = {
    text: `3 Hello world! Log ID ${res.locals.logId}`
  }

  try {
    await twitterClient.v2.tweet(tweet.text);
  } catch (error) {
    console.log(error)

    res.locals.default_problem_response = {
      status: error.statusCode,
      message: error.message
    }
  }
  return next()
}

module.exports = {
  mid1,
  // mid2
}

Le Code se décrit de lui-même.

En gros, on saute l'intergiciel si le statut est autre que 200, car cela équivaut à un problème. Par conséquent, on ne tweete pas et passe au prochain intergiciel. Ce dernier est celui qui log au journal.

On spécifie le tweet que l'on veut tweeter. Après, on passe au prochain intergiciel.

En cas d'erreur du module et que l'action de Tweeter ne fonctionne pas, on récupère l'erreur, puis on change la réponse en fonction de l'erreur générée par le module twitter-api-v2.

Open AI et tweetez un fichier média

Désormais, nous allons essayer d'intégrer une image à notre tweet. Puis, nous allons expérimenter avec l'API d'OpenAI pour générer des tweets intéressants et sans messages de configuration (« prompts »).

Cliquez sur ce lien pour apprendre comment tweeter une image : Tweeter une image avec l'API de Twitter et Node.js

Cliquez ici pour apprendre comment démarrer avec l'API d'OpenAI : Démarrer avec l'API d'OpenAI

Mahdi Furry

Lectures supplémentaires