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ímite | Descripción |
---|---|
Tasa | Roblox 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 tema | 80 caracteres |
Tamaño del mensaje | 1,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:
Crea una clave de API en Panel de creador y cópiala en algún lugar seguro. Asegúrate de realizar las siguientes configuraciones:
- Añade servicio de mensajería a permisos de acceso .
- Seleccione una experiencia y agregue la operación universal-messaging-service:publicar .
Obtenga el ID del universo para su experiencia:
Navegue hasta el Panel del creador.
Encuentra la experiencia a la que quieres publicar tus mensajes.
Pase el cursor sobre una miniatura de experiencia, haga clic en el botón ⋯ y seleccione Copiar ID del universo .
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 mensajecurl -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!"}'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:
Cuando registre su aplicación, bajo Permisos , seleccione el alcance universal-mensajería-de-servicio:publicar .
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=6789Solicita 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 ejemplocurl --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"]}}}]}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 ejemplocurl --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"}'