Além de gerenciar seus segredos dentro dos jogos, você pode gerenciar segredos usando a API do armazenamento de segredos do Open Cloud.
Antes de usar a API, você deve gerar uma chave de API com o sistema de API secret-store ou configurar seu aplicativo OAuth 2.0 com o tipo de escopo universe.secret. Os exemplos nesta página usam chaves de API.
Criptografia de segredos
Ao criar ou atualizar segredos no Roblox, você deve criptografar os segredos com uma caixa selada LibSodium e a chave pública do seu jogo, e em seguida codificar o resultado em base64.
Primeiro, obtenha a chave pública do seu jogo:
curl --location 'https://apis.roblox.com/cloud/v2/universes/{universeId}/secrets/public-key' \--request GET \--header 'x-api-key: <your-secret-here>' \
Em seguida, crie uma caixa selada e codifique-a em base64. O exemplo abaixo usa Python e PyNaCl. (Execute pip install pynacl para instalá-lo localmente).
from base64 import b64encodefrom nacl import encoding, publicpublic_key = "Zgj4+V7vSaEZ06rXazKJUIcUnVa95tUNiwXAif/vdHo="secret_content = "my_api_key_content"public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())sealed_box = public.SealedBox(public_key)encrypted = sealed_box.encrypt(secret_content.encode("utf-8"))print(b64encode(encrypted).decode("utf-8"))
Você pode então criar ou atualizar um segredo usando a saída. Este exemplo cria um novo segredo:
curl --location 'https://apis.roblox.com/cloud/v2/universes/6930499524/secrets' \--request POST \--header 'Content-Type: application/json' \--header 'x-api-key: <your-secret-here>' \--data '{"id": "mySecret","secret": "fP9scJkcDk492F4c1VHZ5QS8v2qsAg7uI+NVVEw6zC0GBnj7xpi7UrNr++lCfr4wyq3ia9Uuu+Ao8HtIXz2gRxBX","key_id": "1200590785272263122"}'
Depois de criar um, veja Usar segredos para usar seu segredo no jogo.
Atualizar segredos
Para atualizar o segredo acima:
curl --location 'https://apis.roblox.com/cloud/v2/universes/6930499524/secrets/mySecret' \--request PATCH \--header 'Content-Type: application/json' \--header 'x-api-key: <your-secret-here>' \--data '{"secret": "2Fczw/PL7woOzHnGHQ65sT0MbzJjEOlfibyKxy374CqzFyEb2QTS8grtNBgG/0sfIvSHEo9JWN+pUr0NTPs0V6lj","key_id": "1200590785272263122"}'
Se você precisar limpar um segredo, uma solicitação de exclusão se parece com isso:
curl --location 'https://apis.roblox.com/cloud/v2/universes/6930499524/secrets/mySecret' \--request DELETE \--header 'Content-Type: application/json' \--header 'x-api-key: <your-secret-here>'