Roblox 為每個體驗提供秘密商店。秘密是像 API 鑰匙、密碼和存取代碼一樣敏感的資訊,用於與外部服務進行身份驗證。例如,如果您想連接到第三方分析或音樂服務,您可能需要使用 API 鑰匙來進行身份驗證。
您可以將 API 鑰匙複製並粘貼到腳本中或添加到資料商店 商家存中,但這些方法會帶來不必要的安全風險。使用秘密儲存庫並使用一小組安全方法來存取鑰匙的解決方案更好。
新增秘密
要檢視、建立、創作或編輯秘密,您必須是體驗擁有者或群組擁有者。您可以擁有每個體驗最多 500 個秘密。
導航到 創作者面板。
選擇您的體驗,然後選擇 秘密 > 創建秘密 。
提供名稱、秘密和適用的域。
- 名稱作為秘密的唯一標識符,因此我們建議使用描述性的東西。
- 秘密長度可達 1,024 個字元。API 鑰匙和存取代碼應來自服務提供商,但如果秘密是密碼,你可能是自己創建的。
- 您可以為域使用有限的通配符語法,例如 * 對於任何域 (不建議) 或 *.example.com 對於任何子域在 example.com 上。特定域更好,例如 my.example.com 。
本地秘密
為了安全原因,每個體驗的秘密儲存只適用於生產遊戲伺服器或 團隊測試 環境。如果您嘗試從本地測試服務器存取秘密,例如在 Studio 按下 播放 按鈕後,您將收到 Can't find secret with given key 錯誤。
要指定本地測試的秘密,請在 遊戲設定 中添加具有 base64 編碼的秘密的有效 JSON 對象。JSON 可包含空格,但必須放置在單一行上。

例如,以下是基於 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 請求。當然,您也可以忽略這些方法並直接將秘密插入標題中。