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:
Crear una clave de API en Panel de control del creador . Asegúrese de realizar las siguientes configuraciones:
- Añadir servicio de mensajería a Permisos de acceso .
- Añade Publicar operación a tu experiencia seleccionada.
Obtén el ID del Universo , el identificador de la experiencia en la que quieres enviar tus mensajes.
Navegar al Panel del Creador .
Encuentra la experiencia a la que quieres publicar tus mensajes.
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 .
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 mensajecurl \--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"}'Llamar a la API para enviar el mensaje.
Agregar API de servicio de mensajería a aplicaciones 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:
Cuando registre su aplicación , bajo permisos , seleccione el rango de universo-mensajería-servicio:publicar .
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=6789Solicite 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 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 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"]}}}]}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 Ejemplocurl --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"}'