Guía de uso de mensajería

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El Servicio de mensajería API es el equivalente abierto de la Engine MessagingService, que te permite comunicarte entre los servidores y clientes de tu experiencia.La API del motor solo te permite escribir y actualizar scripts manualmente en Studio para publicar mensajes, pero la API de la nube abierta te permite enviar mensajes a servidores en vivo desde herramientas externas para automatizar y mejorar tus flujos de trabajo de operaciones.

Uso

Hay varias herramientas útiles que puedes construir apoyando la comunicación entre servidores con la API de servicio de mensajería, incluyendo:

  • Portales de anuncios : Un portal web puede ser útil para apoyar el envío de anuncios a todos los usuarios en todos los servidores en tu experiencia, como anunciar un evento próximo, una actualización y al ganador de una competencia.En el portal, puedes editar un mensaje y hacer clic en un botón que llame a la API para enviar el mensaje a todos los usuarios o usuarios seleccionados.

  • Sistema de moderación : Un sistema de moderación puede ayudar a mantener tu experiencia segura y segura.Al detectar a un usuario con un comportamiento inapropiado, puedes publicar un mensaje para activar el servidor de experiencia para advertir o prohibir al usuario específico.También puedes usar tiendas de datos en el sistema de moderación para agregar cuentas de usuario a una lista de bloqueo que les impide volver a unirse.

  • Panel de LiveOps : Los paneles de LiveOps son herramientas útiles para administrar eventos en vivo, como una fiesta de Halloween.En el tablero de control, puedes pre-codificar un evento, actualizar los mensajes de evento, activar el evento cuando esté listo y recompensar a los usuarios seleccionados con artículos especiales como una corona virtual sin actualizar ninguno del código de la experiencia.

Límites

LímiteDescripción
TasaRoblox restringe las solicitudes de mensajes en .Por ejemplo, una experiencia con 20 jugadores comienza a ralentizarse con 150 solicitudes de mensajes por minuto.
Tamaño del tema80 caracteres
Tamaño del mensaje1,024 caracteres (1 KB)

Configurar un tema para mensajes

Antes de que puedas publicar un mensaje en los servidores en vivo de tu experiencia, debes configurar un canal de mensajes temático , que es un canal de mensajes personalizado accesible desde múltiples servidores.Después de definir un tema, te suscribes a los usuarios al tema para recibir tus mensajes entrantes.

Actualmente, solo puedes definir un tema en Studio y usar la API de Luau MessagingService:SubscribeAsync().El siguiente ejemplo de código se suscribe a cualquier usuario a un tema cuando se unen a la experiencia:

Set up and Subscribe Users to a Topic

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Define y suscríbete al tema
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- Darse de baja del tema al cambiar el ancestro del jugador
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Publicar mensajes en servidores en vivo

Después de configurar un tema, publica un mensaje en los servidores en vivo de tu experiencia:

  1. Crea una clave de API en Panel de creador y cópiala en algún lugar seguro. Asegúrate de realizar las siguientes configuraciones:

    1. Añade servicio de mensajería a permisos de acceso .
    2. Seleccione una experiencia y agregue la operación universal-messaging-service:publicar .
  2. Obtenga el ID del universo para su experiencia:

    1. Navegue hasta el Panel del creador.

    2. Encuentra la experiencia a la que quieres publicar tus mensajes.

    3. Pase el cursor sobre una miniatura de experiencia, haga clic en el botón y seleccione Copiar ID del universo .

  3. Añade la clave de API y el universo a una solicitud POST de la API, como en este ejemplo:

    Ejemplo de solicitud para publicar un mensaje

    curl -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!"
    }'
  4. Envíe la solicitud HTTP para publicar el mensaje.

Añade la API de servicio de mensajería a las aplicaciones de OAuth 2.0

Puedes crear aplicaciones de OAuth 2.0 que permitan a tus usuarios publicar mensajes en sus propios servidores en vivo.

Para usar la API de servicio de mensajería para tu aplicación y solicitar permisos a tus usuarios, realiza las siguientes configuraciones:

  1. Cuando registre su aplicación, bajo Permisos , seleccione el alcance universal-mensajería-de-servicio:publicar .

  2. Cuando implementes el flujo de autorización, incluye universe-messaging-service:publish en el parámetro scope de la URL de autorización que redirige a los usuarios de vuestra aplicación, como el siguiente ejemplo:


    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=6789
  3. Solicita el acceso al universeId de la experiencia a la que el usuario quiere publicar sus mensajes.Su aplicación puede enviar una solicitud a la puerta de enlace de recursos de tokens con el token de acceso, la ID del cliente y el secreto o la , dependiendo de su implementación del flujo de autorización , como parámetros de solicitud para obtener una lista de de experiencias que el usuario otorgó permiso:

    Petición de ejemplo

    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 punto final devuelve una lista de universeIds como la siguiente respuesta de ejemplo:

    Respuesta de ejemplo

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. Su aplicación ahora puede enviar mensajes a cualquier experiencia que un usuario haya otorgado permiso.Al enviar la solicitud, incluya el token de acceso en el encabezado de autorización y el universeId y el tema en la URI de solicitud en el siguiente formato:

    Petición de ejemplo

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