Portail développeurs
Expérimental La plateforme de bots & d’apps est en développement actif. Les serveurs auto-hébergés font tourner les bots, les commandes slash et les composants de message, avec quelques différences par rapport au cloud. Voir ce qui est pris en charge.
← Docs

Matrice des fonctionnalités

Une vue “est-ce que ça marche ?” de chaque fonctionnalité de bot Discord sur GameVox. Servez-vous-en pour cadrer une migration avant de basculer l’URL du gateway. La colonne Auto-hébergé indique si une fonctionnalité marche lorsque votre bot est installé sur le serveur GameVox auto-hébergé d’un client. Voir la documentation sur l’auto-hébergement pour l’architecture de renvoi.

Domaine Fonctionnalité Cloud Auto-hébergé Remarques
Gateway Encodage JSON Oui Oui Par défaut ; ce qu’utilisent toutes les bibliothèques
Compression zlib-stream Oui Oui Couverte par toutes les grandes bibliothèques
Encodage ETF Non Non Les bibliothèques se rabattent sur JSON quand encoding=etf est absent
Compression Zstandard Non Non zlib-stream est l’alternative universelle
Resume / op:6 Oui Oui Le tampon de reprise est répliqué dans Redis, donc op:6 survit aux redémarrages des tâches api
Sharding Oui Oui Hachage standard (guild_id >> 22) % num_shards
REST CRUD des messages Oui Oui Envoi, modification, suppression, suppression groupée, lecture, épinglage, indicateur de saisie, réactions, pièces jointes, sondages
CRUD des salons Oui Oui Cloud : réordonnancement, et écriture des exceptions de rôle (PUT et DELETE) ; les objets salon ne listent pas encore les exceptions. Auto-hébergé : réordonnancement oui, exceptions de rôle oui (pas d’exceptions de membre), listées sur les objets salon
Exceptions de permissions par salon Partiel Partiel Exceptions de rôle (groupe) uniquement, pas d’exceptions de membre. Leur écriture (PUT, DELETE) fonctionne dans le cloud et en auto-hébergé. Leur lecture (permission_overwrites sur les objets salon et CHANNEL_UPDATE) est pour l’instant réservée à l’auto-hébergé ; les objets salon du cloud n’incluent pas ce champ. En auto-hébergé, une autorisation n’accorde jamais plus que ce que le rôle lui-même a le droit de faire
Membres / rôles / bannissements Oui Oui CRUD complet ; communication_disabled_until (timeout) non pris en charge
Webhooks (salon & app) Oui Oui CRUD complet + exécution (embeds, pièces jointes, multipart). Sur les serveurs auto-hébergés, les enregistrements restent dans le stockage cloud et les messages produits par l’exécution sont écrits dans le salon auto-hébergé
Emojis propres à l’app Portail seul Portail seul Gérés dans le portail développeur ; le GET de l’API bots fonctionne. Voir Emojis
Journal d’audit Partiel Partiel Entrées pertinentes pour les bots ; l’historique des exceptions par salon n’est pas indexé
En-têtes de limitation de débit Oui Oui X-RateLimit-* sur chaque réponse, avec gestion des buckets
Interactions Commandes d’application (slash, utilisateur, message) Oui Oui PUT groupé + CRUD unitaire. Les commandes sont enregistrées dans le cloud pour les deux types de serveur ; les invocations sur les serveurs auto-hébergés passent par le cloud
Boutons, sélecteurs de texte, modales (Composants v1) Oui Oui Réponses éphémères comprises. Salons de serveur uniquement, pas les MP. Voir Composants de message
Sélecteurs d’utilisateur, de rôle, de mentionnable et de salon Partiel Partiel Acceptés et enregistrés ; les clients les affichent désactivés, ils ne produisent donc jamais d’interaction
Composants v2 Non Non Non pris en charge ; les composants de mise en page v2 ne sont pas affichés
Interactions en mode HTTP (endpoint sortant) Partiel Partiel Envoyées en POST à votre interactions_endpoint_url avec signature Ed25519, avec repli sur le gateway si l’endpoint échoue. Nécessite une session gateway connectée, et le corps de la réponse est ignoré : répondez via l’endpoint de callback. Voir OAuth2
Vocal Gateway vocal UDP Oui Oui Par région. Voir la documentation vocale
AEAD AES-256-GCM Oui Oui Privilégié
AEAD XChaCha20-Poly1305 Oui Oui Repli
Modification de l’état vocal par le bot Oui Partiel Les deux : PATCH .../voice-states/{user_id} pour rendre muet / déplacer / déconnecter. L’auto-hébergé accepte aussi deaf, dans n’importe quelle combinaison avec un déplacement ; un déplacement émet deux événements au lieu d’un
Divers Emojis de serveur (lecture) Oui Oui Lister + lire ; création/modification/suppression via le portail uniquement
Soundboard (lecture) Oui Oui Lister + lire ; la diffusion de sons pilotée par le bot n’est pas prise en charge
URL personnalisée Partiel Non Cloud : lecture + modification (serveurs Gold et plus). Auto-hébergé : le PATCH renvoie 501
Fils / publications de forum Partiel Partiel Publications de forum : en créer une (POST /channels/{forum}/threads), la lire et y répondre. Les autres endpoints de fils (archivage, membres d’un fil, fils actifs) ne sont pas pris en charge
Événements programmés Oui Partiel CRUD et RSVP, associés aux événements de serveur GameVox. Pas d’événements gateway GUILD_SCHEDULED_EVENT_*. Auto-hébergé : les événements récurrents sont enregistrés, mais les occurrences suivantes ne sont pas générées
Salons de conférence, AutoMod Non Non Intents acceptés, aucun événement
Premium Apps / entitlements Non Non Aucune couche de monétisation en v1
Portail Équipes (propriété multi-développeurs) Oui Parité Discord. Voir Équipes
Transfert d’app vers une équipe Oui À sens unique (comme Discord)
Testeurs d’app (liste blanche d’installation pour apps privées) Oui 100 par app. Voir Équipes → Testeurs
URL d’installation OAuth2 (contextes utilisateur + serveur) Oui Aucune / fournie par GameVox / URL personnalisée. Voir OAuth2
Rotation du secret client Oui Haché en bcrypt ; affiché une fois à la création / rotation
Fiche dans l’annuaire des bots Oui Fiches validées par l’administration sur gamevox.com/bots

Légende

  • Oui: fonctionne comme sur Discord, sans changement de code.
  • Partiel: compatible au niveau du protocole, mais une partie de la sémantique manque. L’appel est sans risque, mais peut ne pas produire d’événements.
  • Non: accepté au niveau du transport (pas de 4014), mais sans effet. Partez du principe que cette fonctionnalité est absente.

← Retour à la documentation