使用秘密工作

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

Roblox 為每個體驗提供秘密商店。秘密是像 API 鑰匙、密碼和存取代碼一樣敏感的資訊,用於與外部服務進行身份驗證。例如,如果您想連接到第三方分析或音樂服務,您可能需要使用 API 鑰匙來進行身份驗證。

您可以將 API 鑰匙複製並粘貼到腳本中或添加到資料商店 商家存中,但這些方法會帶來不必要的安全風險。使用秘密儲存庫並使用一小組安全方法來存取鑰匙的解決方案更好。

新增秘密

要檢視、建立、創作或編輯秘密,您必須是體驗擁有者或群組擁有者。您可以擁有每個體驗最多 500 個秘密。

  1. 導航到 創作者面板

  2. 選擇您的體驗,然後選擇 秘密 > 創建秘密

  3. 提供名稱、秘密和適用的域。

    • 名稱作為秘密的唯一標識符,因此我們建議使用描述性的東西。
    • 秘密長度可達 1,024 個字元。API 鑰匙和存取代碼應來自服務提供商,但如果秘密是密碼,你可能是自己創建的。
    • 您可以為域使用有限的通配符語法,例如 * 對於任何域 (不建議) 或 *.example.com 對於任何子域在 example.com 上。特定域更好,例如 my.example.com

本地秘密

為了安全原因,每個體驗的秘密儲存只適用於生產遊戲伺服器或 團隊測試 環境。如果您嘗試從本地測試服務器存取秘密,例如在 Studio 按下 播放 按鈕後,您將收到 Can't find secret with given key 錯誤。

要指定本地測試的秘密,請在 遊戲設定 中添加具有 base64 編碼的秘密的有效 JSON 對象。JSON 可包含空格,但必須放置在單一行上。

Local secret in the Game Settings window.

例如,以下是基於 base64 編碼的字串 abcdefghijklmnopqrstuvwxyz 被限制到子域 example.com 上:


{"secretName": ["YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=", "*.example.com"]}

要添加多個秘密,請用逗號分開值:


{"secretName1": ["dGVzdDE=", "*.example.com"],"secretName2": ["dGVzdDI=", "*.example.com"],"secretName3": ["dGVzdDM=", "*.example.com"]}

使用秘密

在使用體驗內的秘密之前,您必須在 遊戲設定安全 標籤中啟用 允許 HTTP 請求 。然後在一個指令碼本中呼叫 HttpService:GetSecret()


local HttpService = game:GetService("HttpService")
local testSecret = HttpService:GetSecret("test_secret")

使用秘密商店的好處之一是您不能意外打印秘密。取代秘密本身,以下代碼輸出您在創建秘密時提供的名稱:


print(testSecret) --> Secret(test_secret)

您不能直接操作字串。相反,Secret資料類型讓你能夠添加前缀和後缀到秘密,以幫助形成URL或插入內容,例如Bearer


local HttpService = game:GetService("HttpService")
local testSecret = HttpService:GetSecret("test_secret")
local prefix = "https://my.example.com/endpoint?apiKey="
local suffix = "&user=username"
local url = testSecret:AddPrefix(prefix)
url = url:AddSuffix(suffix)
print(url) --> https://my.example.com/endpoint?apiKey=Secret(test_secret)&user=username

在你擁有插入了秘密的 URL 之後,你可以使用方法如 HttpService:RequestAsync() 來發出標準 HTTP 請求。當然,您也可以忽略這些方法並直接將秘密插入標題中。