發送消息使用指南

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

匯訊服務 API 是 Open Cloud 的 Lua MessagingService 的等同,讓您可以在服務器或客戶端實例上通信。Lua API 只允許您在 Studio 手動寫入並更新一個指令碼,但 Open Cloud API 允許您向外部工具發送消息來自動化和改善您的體驗操作工作流程。

使用

您可以通過支援通訊服務 API 與匯訊服務 API 的交叉伺服器通訊來建立的幾個有用的工具,包括:

  • 公告傳送門戶 : 網頁傳送門可以幫助支持發送公告給您體驗中的所有用戶,例如公佈即將發生的事件、更新和比賽的贏家。在傳送門上,您可以編輯一個訊息並點擊按鈕,以將 API 發送給所有用戶或選擇用戶。

  • 管理員系統 : 管理員系統可以幫助保護您的體驗安全和安全。當偵測到一名使用者有不當行為時,您可以發布一個訊息來啟動體驗服務器警告或禁止特定使用者。您也可以在管理員系統中支持資料商店,以便在使用者重新加入時添加用戶帳戶到封鎖清單。

  • 生活操作監視面板 : 生活操作監視面板是一種有用的工具來管理 live 事件,例如萬聖節派對。在 live 監視面板上,您可以預訂事件、更新事件訊息、啟動事件當它準備好,並且獎勵選定的用戶以特殊物品來重新定義體驗的代碼。

限制

限制 | 說明 --- | --- | Roblox 會在 50 + 5 每分鐘 n 內消息熱門請求,其中 n 是體驗中的玩家數量。 例如,20個玩家的體驗會開始在 1

設定一個主題以傳送訊息

在發布消息給所有體驗的 live 服務器之前,您需要設置一個 主題 ,這是一個自訂訊息頻道,可以從多個服務器存取。之後,您需要訂閱用戶頻道 主題 來接收您的來信。

目前,您只能在 Studio 中定義主題,並使用 Lua MessagingService:SubscribeAsync() 來訂閱用戶。下列代碼示例訂閱任何用戶加入體驗時使用主題:

Set up and Subscribe Users to a Topic

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- 定義並訂閱主題
local topic = "YourTopic"
local connection = MessagingService:SubscribeAsync(topic, function(message)
print(message.Data)
end)
player.AncestryChanged:Connect(function()
-- 玩家祖先變更主題時取消訂閱
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

發布訊息到 Live 服務器

在設置完主題後,您可以發布訊息到您的所有體驗伺服器,使用以下步驟:

  1. 在創作者面板上建立 API 鑰匙。請確認您執行了以下設定:

    1. 將 消息服務務務 添加到 存取權限 。
    2. 發佈 操作添加到您選擇的體驗。
  2. 取得 宇宙 ID ,是您想要傳送訊息的體驗的識別器。

    1. 導航到創作者控制板

    2. 尋找您想要發布訊息的體驗。

    3. 點擊目標體驗的缩略圖上的 按鈕,顯示選項清單,然後選擇 複製宇宙 ID

      Copy Universe ID option from Creator Dashboard
  3. 將 API 鑰匙添加到 x-api-key 標題的 POST 請求,像下列示例所示:

    發布訊息的範例請求

    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. 呼叫 API 發送消息。

將 Messaging Service API 添加到 OAuth 2.0 應用程式

您可以創建 OAuth 2.0 應用程式 支援 Messaging Service API 來允許您的用戶發布訊息到 live 服務器通過您的 OAuth 2.0 應用程式。

要使用 Messaging Service API 為您的應用程序和要求從您的用戶那裡獲得許可,請執行以下設定:

  1. 註冊您的應用程式 ,在 許可 下,選擇 universe-messaging-service:publish 範圍。

  2. 實現授權流程 時,包括 universe-messaging-service:publishscope 參數的授權 URL ,這會將用戶重新導回您的應用程式,例如以下示例:


    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. 請求存取 universeId 的體驗,發布其訊息的使用者想要發布的體驗。您的應用程序可以向 POST 發送一個 POST 請求,包括使用者的身份代碼,客戶 ID 和秘密或 <

    範例請求

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

    這個端口會返回一個 universeIds 與下一個示例回應一樣的列表:

    範例回應

    {
    "resource_infos": [
    {
    "owner": {
    "id": "1516563360",
    "type": "User"
    },
    "resources": {
    "universe": {
    "ids": ["3828411582"]
    }
    }
    }
    ]
    }
  4. 您的應用程序現在可以向任何由用戶授權的體驗發送消息。發送請邀請時,包括授權頭銜中的存取代幣和 universeId 和主題在請求 URL 中的格式:

    範例請求

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