Il Servizio messaggi API è l'equivalente Open Cloud del motore MessagingService, che ti consente di comunicare attraverso i server e i client della tua esperienza.L'API del motore consente solo di scrivere e aggiornare gli script manualmente in Studio per pubblicare messaggi, ma l'API Open Cloud ti consente di inviare messaggi ai server live da strumenti esterni per automatizzare e migliorare i flussi di lavoro delle operazioni.
Uso
Esistono diversi strumenti utili che puoi costruire supportando la comunicazione cross-server con l'API del servizio di messaggi, tra cui:
Portali di 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 imminente, 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 agli utenti selezionati.
Sistema di moderazione : Un sistema di moderazione può aiutare a mantenere la tua esperienza sicura e sicura.Quando rilevi un utente con un comportamento inappropriato, puoi pubblicare un messaggio per attivare il server di esperienza per avvisare o bannare l'utente specifico.Puoi anche utilizzare magazzini di dati nel sistema di moderazione per aggiungere account utente a una lista di blocco che li impedisce di ricongiungersi.
Dashboard di LiveOps : le dashboard di LiveOps sono utili strumenti per la gestione di eventi dal vivo, come una festa di Halloween.Sulla dashboard, puoi pre-codificare un evento, aggiornare i messaggi evento, attivare l'evento quando è pronto e ricompensare gli utenti selezionati con oggetti speciali come una corona virtuale senza aggiornare alcun codice dell'esperienza.
Limitazioni
Limit | Descrizione |
---|---|
Tasso | Roblox limita le richieste di messaggi a 50 + (5 * number_of_players_in_experience).Ad esempio, un'esperienza con 20 giocatori inizia a rallentare a 150 richieste di messaggi al minuto. |
Dimensione argomento | 80 caratteri |
Dimensione messaggio | 1,024 caratteri (1 KB) |
Configura un argomento per il messaggiamento
Prima di poter pubblicare un messaggio sui server live della tua esperienza, devi configurare un argomento , che è un canale di messaggi personalizzato a cui è possibile accedere da più server.Dopo aver definito un argomento, ti iscrivi agli utenti all'argomento per ricevere i tuoi messaggi in arrivo.
Al momento, puoi solo definire un argomento in Studio e utilizzare l'API Luau MessagingService:SubscribeAsync() per iscrivere gli utenti ad esso.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)
-- Definire e sottoscrivere l'argomento
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Disiscriviti dal topic dopo il cambio dell'ascendenza del giocatore
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Pubblica messaggi su server live
Dopo aver configurato un argomento, pubblica un messaggio sui server live della tua esperienza:
Crea una chiave API su Dashboard del creatore e copiala in un luogo sicuro. Assicurati di eseguire le seguenti impostazioni:
- Aggiungi messaging-service a Permessi di accesso .
- Seleziona un'esperienza e aggiungi l'operazione univers-messaging-service:publish .
Ottieni l' ID dell'universo per la tua esperienza:
Naviga alla Dashboard del Creatore.
Trova l'esperienza a cui pubblicare i tuoi messaggi.
Passa il mouse su una miniatura di un'esperienza, fai clic sul pulsante ⋯ e seleziona Copia ID Universo .
Aggiungi la chiave API e l'universo a una RichiestaPOST , come in questo esempio:
Esempio richiesta di pubblicazione di un messaggiocurl -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!"}'Invia la richiesta HTTP per pubblicare il Messaggio.
Aggiungi il servizio di messaggi API a OAuth 2.0 alle app
Puoi creare applicazioni OAuth 2.0 che consentono ai tuoi utenti di pubblicare messaggi sui loro server live.
Per utilizzare l'API del servizio di messaggi per la tua applicazione e richiedere autorizzazioni dai tuoi utenti, esegui le seguenti impostazioni:
Quando registri la tua applicazione, sotto Permessi , seleziona lo scope univers-messaging-service:publish .
Quando implementi il flusso di autorizzazione, includi universe-messaging-service:publish nel parametro scope dell'URL di autorizzazione che reindirizza gli utenti al tuo applicativo, come l'esempio seguente:
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=6789Richiedi l'accesso al universeId dell'esperienza a cui l'utente vuole pubblicare i suoi messaggi.La tua applicazione può inviare una richiesta POST a token resources endpoint con il token di accesso, l'ID del client e il segreto o code challenge , a seconda della tua implementazione del flusso di autorizzazione, come parametri di richiesta per ottenere un elenco di universeIds esperienze che l'utente ha concesso il permesso di:
Esempio di richiestacurl --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 endpoint restituisce un elenco di universeIds come la seguente risposta di esempio:
Esempio di risposta{"resource_infos": [{"owner": {"id": "1516563360","type": "User"},"resources": {"universe": {"ids": ["3828411582"]}}}]}La tua applicazione può ora inviare messaggi a qualsiasi esperienza a cui un utente ha concesso l'autorizzazione.Quando si invia la Richiesta, includi il token di accesso nell'Header di autorizzazione e l'universeId e il topic nella richiesta URI nel seguente formato:
Esempio di richiestacurl --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"}'