Bien démarrer

SDK officiels

Intégrez Lyra en Python, Node.js ou Rust avec une authentification, des erreurs et des ressources cohérentes.

Choisir votre client

Les clients officiels partagent les mêmes valeurs par défaut : authentification Bot, délai maximal de 15 secondes, erreurs Lyra standard et prise en charge des nœuds auto-hébergés. Des assistants couvrent les utilisateurs, communautés, salons, messages et webhooks ; une méthode request générique donne accès au reste de l’API.

LangagePaquetEnvironnement
Pythonlyra-sdkPython 3.9+
Node.js / TypeScript@lyra-social/sdkNode.js 18+
Rustlyra-sdkAsynchrone avec Tokio

Python

Installez le paquet avec pip, créez un client bot puis utilisez les ressources typées. Le client Python est synchrone et ne possède aucune dépendance à l’exécution.

python
import os
from lyra import LyraClient

lyra = LyraClient.bot(os.environ["LYRA_BOT_TOKEN"])
me = lyra.users.me()
message = lyra.channels.send(os.environ["LYRA_CHANNEL_ID"], "Hello from Python!")
print(me["username"], message["id"])

Node.js et TypeScript

Le client Node.js utilise l’API Fetch intégrée et fournit ses déclarations TypeScript. Les méthodes renvoient des objets typés tout en conservant les champs ajoutés par les versions récentes de Lyra.

typescript
import { LyraClient } from '@lyra-social/sdk'

const lyra = LyraClient.bot(process.env.LYRA_BOT_TOKEN!)
const me = await lyra.users.me()
const message = await lyra.channels.send(
  process.env.LYRA_CHANNEL_ID!,
  'Hello from Node.js!',
)
console.log(me.username, message.id)

Rust

Le client Rust est asynchrone, utilise rustls pour HTTPS et conserve les champs de réponse inconnus afin de rester compatible avec les évolutions futures.

rust
use lyra_sdk::LyraClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let lyra = LyraClient::bot(std::env::var("LYRA_BOT_TOKEN")?)?;
    let me = lyra.me().await?;
    let message = lyra.send_message(
        &std::env::var("LYRA_CHANNEL_ID")?,
        "Hello from Rust!",
    ).await?;
    println!("{} {}", me.username, message.id);
    Ok(())
}

Nœuds auto-hébergés et requêtes libres

Définissez baseUrl (Node.js), base_url (Python) ou utilisez le builder Rust pour cibler un autre nœud. Incluez toujours /api/v1. La méthode request permet d’utiliser un endpoint pris en charge qui ne possède pas encore d’assistant dédié. L’exécution d’un webhook omet volontairement l’en-tête Authorization du client afin de ne jamais transmettre les identifiants du bot à une route protégée par un jeton de webhook.

Disponibilité des paquets

Les sources et les tests des SDK se trouvent dans le dépôt Lyra sous sdks/. Leur publication sur npm, PyPI et crates.io pourra être automatisée indépendamment.