Además de gestionar tus secretos dentro de los juegos, puedes gestionar secretos utilizando la API del almacén de secretos de Open Cloud.
Antes de usar la API, debes generar una clave API con el sistema de API secret-store o configurar tu aplicación OAuth 2.0 con el tipo de alcance universe.secret. Los ejemplos en esta página utilizan claves API.
Cifrado de secretos
Al crear o actualizar secretos en Roblox, debes cifrar los secretos con una caja sellada de LibSodium y la clave pública de tu juego, y luego codificar el resultado en base64.
Primero, obtén la clave pública de tu juego:
curl --location 'https://apis.roblox.com/cloud/v2/universes/{universeId}/secrets/public-key' \--request GET \--header 'x-api-key: <your-secret-here>' \
A continuación, crea una caja sellada y codifícalo en base64. El siguiente ejemplo utiliza Python y PyNaCl. (Ejecuta pip install pynacl para instalarlo 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"))
Luego, puedes crear o actualizar un secreto utilizando la salida. Este ejemplo crea un nuevo secreto:
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"}'
Después de crear uno, consulta Usar secretos para usar tu secreto en el juego.
Actualizar secretos
Para actualizar el secreto anterior:
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"}'
Si necesitas limpiar un secreto, una solicitud de eliminación se vería así:
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>'