Il Messaging Service API è l'equivalente Open Cloud della Lua MessagingService , che ti consente di comunicare tra server o istanze client della tua esperienza. L'API Lua ti consente di scrivere e aggiornare uno script manualmente in Studio per pubblicare messaggi, ma l'API Open Cloud ti consente di inviare messaggi sui server live da strumenti esterni per automatizzare e migliorare i tuoi flussi di lavor
Uso
Ci sono diversi strumenti utili che puoi costruire supportando la comunicazione tra server con l'API Messaging Service, tra cui:
Portali degli annunci : Un portale web può essere utile per supportare l'invio di annunci a tutti gli utenti sui server nella tua esperienza, come l'annuncio di un evento in arrivo, un Aggiornarmentoe il vincitore di una competizione. Sul portale, puoi modificare un messaggio e fare clic su un pulsante che chiama l'API per inviare il messaggio a tutti gli utenti o gli utenti selezionati.
Sistema di moderazione della community : Un sistema di moderazione della community può aiutare a mantenere la tua esperienza sicura e sicura. Quando rileva un utente con un comportamento inappropriato, puoi pubblicare un messaggio per avvisare il server dell'esperienza per avvisare o bannare l'utente specifico. Puoi anche supportare archivi di dati nel sistema di moderazione per aggiungere account utente alla lista di blocco che li impedisce di ricongiungersi.
Dashboard di LiveOps : LiveOps Dashboard è uno strumento utile per la gestione degli eventi dal vivo, come una festa di Halloween. Nella dashboard di LiveOps, puoi pre-codificare un evento, aggiornare i messaggi dell'evento, attivare l'evento quando è pronto e ricompensare gli utenti selezionati con oggetti speciali come una corona virtuale senza aggiornare alcun dei codicedell'esperienza.
Limitazioni
Limite | Description --- | --- Rate | Roblox throttles message requests at 50 + 5 n per minute, where n is the number of players in the esperienza. For example, an experience with 20 players begins to throttle at 150 message requests per minute. 1> Size of Topic1> |
Impostazione di un argomento per il messaggio
Prima di poter pubblicare un messaggio a tutti i server live della tua esperienza, devi configurare un argomento , che è un canale di messaggio personalizzato che è accessibile da più server. Dopo aver definito un argomento, devi iscrivere gli utenti al argomento per ricevere i tuoi messaggi in arrivo.
Attualmente, puoi definire un argomento solo in Studio e usare Lua MessagingService:SubscribeAsync() per iscrivere gli utenti all'argomento. Il seguente esempio di codice iscrive qualsiasi utente a un argomento quando si unisce all'esperienza:
Set up and Subscribe Users to a Topic
local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Defini e iscriviti al tema
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Unisciti alla dismissione dal tema per la discendenza del giocatore
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Pubblicare Messaggi ai Server Live
Dopo aver configurato un argomento su uno dei server live della tua esperienza, puoi pubblicare un messaggio a tutti i server live della tua esperienza con i seguenti passaggi:
Crea una chiave API su Dashboard del creatore . Assicurati di eseguire i seguenti impostazioni:
- Aggiungi messaging-service a Permessi di accesso .
- Aggiungi Pubblica operazione alla tua esperienza selezionata.
Ottieni l' ID dell'Universo , l'identificatore dell'esperienza in cui vuoi inviare i tuoi messaggi.
Vai alla Dashboard del Creatore .
Trova l'esperienza a cui vuoi pubblicare i tuoi messaggi.
Fai clic sul pulsante ⋯ sulla miniatura dell'esperienza target per visualizzare una lista di opzioni, quindi seleziona Copia ID dell'universo .
Aggiungi la chiave API nell' x-api-key header di una richiesta POST all'API come segue esempio:
Esempio richiesta per la pubblicazione di un messaggiocurl \--location \--request POST \'https://apis.roblox.com/messaging-service/v1/universes/{universeId}/topics/{topic}' \-H 'x-api-key: abc...' \-H 'Content-Type: application/json' \--data-raw '{"message":"message to publish"}'Chiama l'API per inviare il messaggio.
Aggiungere API di messaggi alla app OAuth 2.0
Puoi creare applicazioni OAuth 2.0 che supportano l'API del Messaggi Servizio per consentire ai tuoi utenti di pubblicare messaggi sui server dal vivo attraverso la tua applicazione OAuth 2.0.
Per utilizzare Messaging Service API per la tua applicazione e richiedere autorizzazioni dai tuoi utenti, esegui i seguenti impostazioni:
Quando registri la tua applicazione , sotto Permessi , seleziona lo script universo-messaggi-service:pubblica .
Quando implementare il flusso di autorizzazione , includere universe-messaging-service:publish nel parametro scope della URL dell'autorizzazione che reindirizza gli utenti al tuo applicativo, come il seguente esempio:
https://www.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=6789Richiedi l'accesso al universeId della esperienza che l'utente vuole pubblicare i suoi messaggi. La tua applicazione può inviare una richiesta POST all'端口 delle risorse del token con il token di accesso, l'ID del client e la chiave o il 1>
Richesta di esempiocurl --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>'Questo punto di interfaccia restituisce una lista di universeIds come la seguente risposta dell'esempio:
Risposta di esempio{"resource_infos": [{"owner": {"id": "1516563360","type": "User"},"resources": {"universe": {"ids": ["3828411582"]}}}]}Ora la tua applicazione può inviare messaggi a qualsiasi esperienza che un utente ha concesso l'autorizzazione. Quando si invia la Richiesta, includere il token di accesso nell'autorizzazione dell'头 e il universeId e il argomento nell'URL della richiesta nel seguente formato:
Richesta di esempiocurl --location --request POST 'https://apis.roblox.com/messaging-service/v1/universes/{universeId}/topics/{topic}' \--header 'Authorization: Bearer <access_token>' \--header 'Content-Type: application/json' \--data-raw '{"message":"message to publish"}'