Bien démarrer

Tutoriel : votre premier bot

Créez, installez et exécutez un petit bot Node.js qui publie son premier message dans un salon Lyra.

1. Créer et installer l’application

Créez une application dans la console développeur et conservez immédiatement le jeton du bot. Dans l’onglet Bot, n’activez Bot public que si d’autres personnes doivent pouvoir l’installer. Générez l’invitation puis sélectionnez Voir les salons, Envoyer des messages et Lire l’historique. Choisissez une communauté de test que vous gérez et autorisez l’installation.

Deux identifiants sont nécessaires

Copiez l’ID du salon de destination depuis Lyra et placez-le avec le jeton dans des variables d’environnement. Le jeton est secret ; l’ID du salon ne l’est pas.

2. Créer le projet local

Cet exemple minimal utilise l’API Fetch intégrée à Node.js 18 et versions suivantes : il ne possède donc aucune dépendance d’exécution.

bash
mkdir hello-lyra && cd hello-lyra
npm init -y
export LYRA_BOT_TOKEN="paste-the-token"
export LYRA_CHANNEL_ID="paste-the-channel-id"

3. Envoyer le premier message

Enregistrez le fichier sous index.mjs puis lancez node index.mjs. Une réponse 201 crée le message. Une erreur 401 indique généralement un jeton invalide ; une erreur 403 signifie souvent que le rôle géré ne dispose pas de Voir le salon ou Envoyer des messages dans ce salon.

javascript
const api = 'https://beta.lyra.social/api/v1'
const token = process.env.LYRA_BOT_TOKEN
const channelId = process.env.LYRA_CHANNEL_ID

if (!token || !channelId) throw new Error('Missing Lyra environment variables')

const response = await fetch(`https://beta.lyra.social/api/v1/channels/${channelId}/messages`, {
  method: 'POST',
  headers: {
    Authorization: `Bot ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ content: 'Hello from my first Lyra bot!' }),
})

const body = await response.json()
if (!response.ok) throw new Error(`${response.status}: ${body.error?.message}`)
console.log('Created message', body.id)

4. Transformer le script en véritable bot

  • Utiliser le SDK Node.js officiel pour obtenir des ressources typées et la reprise automatique du Gateway
  • Enregistrer une commande slash dans l’onglet Commandes
  • Ne souscrire qu’aux intents Gateway réellement nécessaires
  • Traiter les réponses 429 avec Retry-After et un nombre de tentatives limité
  • Effectuer immédiatement une rotation si le jeton apparaît dans un journal, un commit ou une capture d’écran