In aanvulling op het beheren van je geheimen binnen games, kun je geheimen beheren met behulp van de Open Cloud secrets store API.
Voordat je de API gebruikt, moet je een API-sleutel genereren met het secret-store API-systeem of je OAuth 2.0-app configureren met het universe.secret scope-type. De voorbeelden op deze pagina gebruiken API-sleutels.
Geheimencryptie
Bij het maken of bijwerken van geheimen op Roblox, moet je geheimen versleutelen met een LibSodium sealed box en de openbare sleutel van je game, en vervolgens het resultaat base64-encoderen.
Eerst, haal de openbare sleutel van je game op:
curl --location 'https://apis.roblox.com/cloud/v2/universes/{universeId}/secrets/public-key' \
--request GET \
--header 'x-api-key: <your-secret-here>' \Vervolgens, maak een sealed box en base64-codeer deze. Het onderstaande voorbeeld gebruikt Python en PyNaCl. (Voer pip install pynacl uit om het lokaal te installeren).
from base64 import b64encode
from nacl import encoding, public
public_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"))Je kunt vervolgens een geheim maken of bijwerken met de output. Dit voorbeeld maakt een nieuw geheim aan:
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"
}'Nadat je er een hebt gemaakt, zie Gebruik geheimen om je geheim in de game te gebruiken.
Geheimen bijwerken
Om het bovenstaande geheim bij te werken:
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"
}'Als je een geheim wilt opruimen, ziet een verwijderingsverzoek er als volgt uit:
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>'