Roblox は、各エクスペリエンスに秘密のストアを提供します。秘密は、外部サービスに認証するために使用する API キー、パスワード、アクセストークンのような敏感な情報です。たとえば、サードパーティのアナリティクスまたは音楽サービスに接続したい場合は、API キーを使用して認証する必要があります。
API キーをスクリプトにコピーして貼り付けたり、データスト保管に追加したりできますが、それらのアプローチは不必要なセキュリティリスクを伴います。より良い解決策は、シークレットストアを使用し、小さなセットの安全なメソッドを使用してキーにアクセスすることです。
秘密を追加
ビュー、作成、または編集するには、エクスペリエンスのオーナーまたはグループオーナーである必要があります。エクスペリエンスごとに最大 500 個の秘密を持つことができます。
ナビゲート to the クリエイターダッシュボード.
エクスペリエンスを選択し、次に シークレット > シークレットを作成 を選択します。
名、秘密、適用可能なドメインを提供する
- 名前は秘密のユニークな識別子として機能するので、説明的なものを推奨します。
- 秘密の長さは最大 1,024 文字になります。API キーとアクセストークンはサービスプロバイダーから来るべきですが、秘密がパスワードの場合、おそらく自分で作成しました。
- ドメインには、限られたワイルドカード構文を使用できます。たとえば、* はすべてのドメイン (推奨しません) または *.example.com は example.com のすべてのサブドメインに対してです。特定のドメインはさらに良い、例えば my.example.com です。
ローカルの秘密
セキュリティ上の理由により、各エクスペリエンスの秘密ストアは、ライブゲームサーバーまたは チームテスト 環境にのみ利用可能です。ローカルテストサーバーから秘密にアクセスしようとすると、Studio で プレイ ボタンを押した後、Can't find secret with given key エラーが発生します。
ローカルテストのための秘密を指定するには、ゲーム設定 にベース64 符号化された秘密を持つ有効な JSON オブジェクトを追加します。JSON にはスペースを含めることができますが、1行になければなりません。

たとえば、次の 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 リクエストを作成できます。もちろん、これらのメソッドを無視して、ヘッダーに秘密を直接挿入することもできます。