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í.

La API de servicio de mensajería API es el equivalente Open Cloud de la Lua MessagingService, que le permite comunicarse entre servidores o instancias de cliente de su experiencia. La API Lua solo le permite escribir y actualizar un script manualmente en Studio para publicar mensajes, pero la API de servicio de mensajería Open Cloud le permite enviar mensajes a servidores en vivo desde herramientas de terceros para automat

Uso

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

  • Portales de anuncios : Un portal web puede ser útil para apoyar el envío de anuncios a todos los usuarios en los servidores en tu experiencia, como anunciar un próximo evento, una actualización y el ganador de una competencia. En el portal, puedes editar un mensaje y hacer clic en un botón que llama 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 su experiencia segura y segura. Cuando detecta un usuario con un comportamiento inapropiado, puede publicar un mensaje para que el servidor de experiencia publique para advertir o prohibir al usuario específico. También puede apoyar almacenes de datos en el sistema de moderación para agregar cuentas de usuarios a una lista de bloqueo que los impide volver a unirse.

  • Panel de LiveOps : LiveOps es una herramienta útil para administrar eventos en vivo, como una fiesta de Halloween. En el panel de LiveOps, puede pre-códigar un evento, actualizar mensajes de eventos y desencadenar el evento cuando esté listo, y recompensar a los usuarios seleccionados con artículos especiales como una corona virtual sin actualizar ningún código de la experiencia.

Límites

Límite | Descripción --- | --- Velocidad de disparo | Roblox limita las solicitudes de mensajes en 50 + 5 n por minuto, donde n es el número de jugadores en la experiencia. Por ejemplo, una experiencia con 20 jugadores comienza a disparar a 150

Configurando un tema para el mensajería

Antes de que pueda publicar un mensaje a todos los servidores de su experiencia, debe configurar un tema , que es un canal de mensajes personalizado que se puede acceder desde varios servidores. Después de definir un tema , debe suscribir los usuarios al tema para recibir sus mensajes entrantes.

Actualmente, solo puede definir un tema en Studio y usar Lua MessagingService:SubscribeAsync() para suscribir a los usuarios a él. El siguiente ejemplo de código 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)
-- Defina y suscríbase 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 la descendencia del jugador
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Publicar mensajes en servidores en vivo

Después de configurar un tema, puedes publicar un mensaje a todos los servidores en vivo de tu experiencia con los siguientes pasos:

  1. Crear una clave de API en Panel de control del creador . Asegúrese de realizar las siguientes configuraciones:

    1. Añadir servicio de mensajería a Permisos de acceso .
    2. Añade Publicar operación a tu experiencia seleccionada.
  2. Obtén el ID del Universo , el identificador de la experiencia en la que quieres enviar tus mensajes.

    1. Navegar al Panel del Creador .

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

    3. Haga clic en el botón en la miniatura de la experiencia objetivo para mostrar una lista de opciones, luego seleccione Copiar ID del Universo .

      Copy Universe ID option from Creator Dashboard
  3. Añade la llave de API en el x-api-key encabezado de una solicitud de POST a la API como el siguiente ejemplo:

    Ejemplo de solicitud para publicar un mensaje

    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. Llamar a la API para enviar el mensaje.

Agregar API de servicio de mensajería a aplicaciones OAuth 2.0

Puedes crear aplicaciones OAuth 2.0 que soportan la API de Mensajería para permitir que tus usuarios publiquen mensajes en servidores en vivo a través de tu aplicación OAuth 2.0.

Para usar el servicio de API de mensajería para su aplicación y solicitar permisos de sus usuarios, realice los siguientes ajustes:

  1. Cuando registre su aplicación , bajo permisos , seleccione el rango de universo-mensajería-servicio:publicar .

  2. Cuando se implementa el flujo de autorización, incluya universe-messaging-service:publicar en el parámetro universe-messaging-service:publish de la URL de autorización que redirige a los usuarios a su aplicación, como el siguiente ejemplo:


    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 el acceso al universeId de la experiencia que el usuario quiere publicar sus mensajes. Su aplicación puede enviar una solicitud de POST a la Endpoint de recursos de tokens con el token de acceso, ID del cliente y contraseña o el desafío de código de su

    Solicitud 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 de fin retorna una lista de universeIds como la siguiente respuesta del 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 ha concedido permiso. Al enviar la solicitud, incluya el token de acceso en el encabezado de autorización y el universeId y el tema en la solicitud HTTP en el siguiente formato:

    Solicitud de Ejemplo

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