Guia de Uso de Mensagens

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

A API de Mensageria de Serviço é o equivalente Open Cloud do Lua MessagingService, que permite que você comunique entre servidores ou instâncias de cliente de sua experiência. A API Lua só permite que você escreva e atualize um script manualmente no Studio para publicar mensagens, mas a API Open Cloud permite que você envie mensagens para servidores ao vivo de ferramentas de terceiros para automatizar e melhorar seus

Uso

Existem várias ferramentas úteis que você pode construir ao apoiar a comunicação entre servidores com a API (Interface de Programação para Aplicações)de Mensageria de Serviço, incluindo:

  • Portais de Anúncios : Um portal da web pode ser útil para apoiar o envio de anúncios a todos os usuários em todos os servidores em sua experiência, como anunciar um evento em breve, uma atualização e o vencedor de uma competição. No portal, você pode editar uma mensagem e clicar em um botão que chama a API para enviar a mensagem para todos os usuários ou usuários selecionados.

  • Sistema de Moderação de Conteúdo : Um sistema de moderação de conteúdo pode ajudar a manter sua experiência segura e segura. Ao detectar um usuário com comportamento inapropriado, você pode publicar uma mensagem para iniciar o servidor de experiência para avisar ou banir o usuário específico. Você também pode apoiar armazenamento de dados no sistema de moderação para adicionar contas de usuários à lista de bloqueio que imped

  • Painel de LiveOps : LiveOps é um painel útil para gerenciar eventos ao vivo, como uma festa de Halloween. No painel LiveOps, você pode pré-codificar um evento, atualizar mensagens de evento, acionar o evento quando estiver pronto e recompensar usuários selecionados com itens especiais, como uma coroa virtual sem atualizar nenhum dos códigos da experiência.

Limites

Limite | Descrição --- | --- Taxa | Roblox controla as solicitações de mensagens em até 50 + 5 n por minuto, onde n é o número de jogadores na experiência. Por exemplo, uma experiência com 20 jogadores começa a controlar em 150 solicitações de

Configurando um Tópico para Mensageria

Antes de poder publicar uma mensagem para todos os servidores ativos da sua experiência, você precisa configurar um tópico, que é um canal de mensagem personalizado que é acessível de vários servidores. Depois de definir um tópico, você precisa inscrever os usuários no tópico para receber suas mensagens entrantes.

Atualmente, você só pode definir um tópico no Studio e usar Lua MessagingService:SubscribeAsync() para inscrever usuários nele. O seguinte código de exemplo inscreve qualquer usuário em um tópico quando eles se juntam à experiência:

Set up and Subscribe Users to a Topic

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Defina e inscreva-se no tópico
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Desinscreva-se do tópico ao alterar a ancestralidade do jogador
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Publicando Mensagens em Servidores ao Vivo

Depois de configurar um tópico, você pode publicar uma mensagem para todos os servidores ativos de sua experiência com as seguintes etapas:

  1. Crie uma chave da API em Painel do Criador. Certifique-se de executar as seguintes configurações:

    1. Adicionar serviço de mensageria a Permissões de Acesso .
    2. Adicione a operação Publicar à sua experiência selecionada.
  2. Obtenha o ID do Universo , o identificador da experiência em que você deseja enviar suas mensagens.

    1. Navegue até o Painel do Criador.

    2. Encontre a experiência que você deseja publicar suas mensagens.

    3. Clique no botão na miniatura da experiência alvo para exibir uma lista de opções, então selecione Copiar ID do Universo .

      Copy Universe ID option from Creator Dashboard
  3. Adicione a chave da API no cabeçalho x-api-key de uma solicitação de POST à API, como mostrado no exemplo a seguir:

    Exemplo de Pedido para Publicar uma Mensagem

    curl \
    --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"}'
  4. Chame a API para enviar a mensagem.

Adicionando API de Mensageria às Apps OAuth 2.0

Você pode criar aplicativos OAuth 2.0 que suportam a API de Mensageria para permitir que seus usuários publiquem mensagens em servidores ao vivo através de sua aplicação OAuth 2.0.

Para usar a API de Mensageria para sua aplicação e solicitar permissões de seus usuários, realize as seguintes configurações:

  1. Quando você registra sua aplicação, sob Permissões, selecione o escopo universo-mensageria-de-serviço:publique.

  2. Quando implementar o fluxo de autorização , incluir universe-messaging-service:publish no parâmetro scope da URL de autorização que redireciona os usuários de volta para sua aplicação, como o seguinte exemplo:


    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=6789
  3. Solicite acesso ao universeId da experiência que o usuário deseja publicar suas mensagens. Sua aplicação pode enviar uma solicitação de POST para o token resources endpoint com o token de acesso, ID do cliente e secreto ou o 1> code challenge

    Exemplo de Pedido

    curl --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>'

    Este ponto de terminação retorna uma lista de universeIds como a resposta a seguinte exemplo:

    Exemplo de Resposta

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. Suas aplicações agora podem enviar mensagens para qualquer experiência que um usuário concedeu permissão. Ao enviar a solicitar / pedir, incluir o token de acesso no cabeçalho de autorização e o universeId e tópico na solicitação HTTP no seguinte formato:

    Exemplo de Pedido

    curl --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"}'