Le service de messagerie API est l'équivalent du moteur MessagingService qui vous permet de communiquer sur les serveurs et les clients de votre expérience.L'API moteur ne vous permet que d'écrire et de mettre à jour des scripts manuellement dans Studio pour publier des messages, mais l'API Open Cloud vous permet d'envoyer des messages à des serveurs en direct à partir d'outils externes pour automatiser et améliorer vos flux de travail d'opérations.
Utilisation
Il existe plusieurs outils utiles que vous pouvez construire en soutenant la communication entre serveurs avec l'API du service de messagerie, y compris :
Portails d'annonce : un portail Web peut être utile pour soutenir l'envoi d'annonces à tous les utilisateurs sur les serveurs de votre expérience, comme l'annonce d'un événement à venir, d'une mise à jour et du gagnant d'une compétition.Sur le portail, vous pouvez modifier un message et cliquer sur un bouton qui appelle l'API pour envoyer le message à tous les utilisateurs ou aux utilisateurs sélectionnés.
Système de modération : un système de modération peut aider à garder votre expérience sûre et sécurisée.Lorsque vous détectez un utilisateur avec un comportement inapproprié, vous pouvez publier un message pour déclencher le serveur d'expérience pour avertir ou bannir l'utilisateur spécifique.Vous pouvez également utiliser stores de données dans le système de modération pour ajouter des comptes utilisateur à une liste de blocage qui les empêche de se rejoindre.
Tableau de bord LiveOps : les tableaux de bord LiveOps sont des outils utiles pour gérer des événements en direct, tels qu'une fête d'Halloween.Sur le tableau de bord, vous pouvez pré-coder un événement, mettre à jour les messages d'événement, déclencher l'événement lorsqu'il est prêt et récompenser les utilisateurs sélectionnés avec des articles spéciaux comme une couronne virtuelle sans mettre à jour aucun des codes de l'expérience.
Limites
Limiter | Description |
---|---|
Fréquence | Roblox limite les demandes de messages à 50 + (5 * number_of_players_in_experience) .Par exemple, une expérience avec 20 joueurs commence à ralentir à 150 demandes de message par minute. |
Taille du sujet | 80 caractères |
Taille du message | 1,024 caractères (1 KB) |
Configurer un sujet pour le messager
Avant de pouvoir publier un message sur les serveurs en direct de votre expérience, vous devez configurer un sujet , qui est un canal de message personnalisé accessible à partir de plusieurs serveurs.Après avoir défini un sujet, vous vous abonnez aux utilisateurs au sujet afin de recevoir vos messages entrants.
Actuellement, vous ne pouvez définir un sujet que dans Studio et utiliser l'API Luau MessagingService:SubscribeAsync() pour y souscrire les utilisateurs.L'exemple de code suivant s'abonne à un sujet lorsque tout utilisateur rejoint l'expérience :
Set up and Subscribe Users to a Topic
local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Définir et s'abonner au sujet
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Désabonner du sujet lors du changement de l'ascendance du joueur
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Publier des messages sur des serveurs en direct
Après avoir configuré un sujet, publiez un message sur les serveurs en direct de votre expérience :
Créer une clé API sur tableau de bord du créateur et la copier quelque part en sécurité. Assurez-vous d'effectuer les paramètres suivants :
- Ajoutez le service de messagerie à les permissions d'accès .
- Sélectionnez une expérience et ajoutez l'opération univers-messaging-service : publier .
Obtenez le ID de l'univers pour votre expérience :
Accédez à la tableau de bord du créateur.
Trouvez l'expérience à laquelle vous voulez publier vos messages.
Passez la souris sur une vignette d'expérience, cliquez sur le bouton ⋯ et sélectionnez Copier l'ID de l'univers .
Ajoutez la clé API et l'univers à une demandePOST de la manière suivante, comme dans cet exemple :
Exemple de demande de publication d'un messagecurl -L -X POST 'https://apis.roblox.com/cloud/v2/universes/{universe}:publishMessage' \-H 'x-api-key: {api-key}' \-H 'Content-Type: application/json' \--data '{"topic": "your-topic","message": "Hello, everyone!"}'Envoyez la requête HTTP pour publier le message.
Ajouter l'API du service de messagerie à l'application OAuth 2.0
Vous pouvez créer applications OAuth 2.0 qui permettent à vos utilisateurs de publier des messages sur leurs propres serveurs en direct.
Pour utiliser l'API de service de messagerie pour votre application et demander des autorisations à vos utilisateurs, effectuez les paramètres suivants :
Lorsque vous enregistrez votre application , sous autorisations , sélectionnez la portée univers-messagerie-service : publier .
Lors de l'implémentation du flux d'autorisation , incluez dans le paramètre de l'URL d'autorisation qui redirige les utilisateurs vers votre application, comme l'exemple suivant :
https://authorize.roblox.com?client_id=816547628409595165403873012&redirect_uri=https://my-app.com/redirect&scope=openid+universe-messaging-service:publish&response_type=Code&prompts=login+consent&nonce=12345&state=6789Demandez l'accès au universeId de l'expérience auquel l'utilisateur veut publier ses messages.Votre application peut envoyer une demande à l'extrémité des ressources de jeton avec le jeton d'accès, l'ID du client et le secret ou le , selon votre implémentation du flux d'autorisation , en tant que paramètres de requête pour obtenir une liste de expériences auxquelles l'utilisateur a accordé la permission :
Exemple de demandecurl --location --request POST 'https://apis.roblox.com/oauth/v1/token/resources' \--header 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'token=<access_token>' \--data-urlencode 'client_id=<client_id>' \--data-urlencode 'client_secret=<client_secret>'Ce point final renvoie une liste de universeIds comme la réponse d'exemple suivante :
Exemple de réponse{"resource_infos": [{"owner": {"id": "1516563360","type": "User"},"resources": {"universe": {"ids": ["3828411582"]}}}]}Votre application peut désormais envoyer des messages à toute expérience à laquelle un utilisateur a accordé une autorisation.Lors de l'envoi de la demande, incluez le jeton d'accès dans l'en-tête d'autorisation et le universeId et le sujet dans l' URI de la demande au format suivant :
Exemple de demandecurl --location --request POST 'https://apis.roblox.com/cloud/v2/universes/{universe}:publishMessage' \--header 'Authorization: Bearer <access_token>' \--header 'Content-Type: application/json' \--data-raw '{"topic": "some-topic","message":"message to publish"}'