Oprócz zarządzania swoimi sekretami w grach, możesz zarządzać sekretami za pomocą API magazynu sekretów Open Cloud.
Przed użyciem API musisz wygenerować klucz API z systemem API secret-store lub skonfigurować swoją aplikację OAuth 2.0 z typem zakresu universe.secret. Przykłady na tej stronie używają kluczy API.
Szyfrowanie sekretów
Podczas tworzenia lub aktualizacji sekretów w Robloxie, musisz zaszyfrować sekrety za pomocą LibSodium sealed box oraz publicznego klucza twojej gry, a następnie zakodować wynik w formacie base64.
Najpierw, uzyskaj publiczny klucz swojej gry:
curl --location 'https://apis.roblox.com/cloud/v2/universes/{universeId}/secrets/public-key' \
--request GET \
--header 'x-api-key: <twoj-sekret-tutaj>' \Następnie stwórz sealed box i zakoduj go w base64. Poniższy przykład używa Pythona i PyNaCl. (Uruchom pip install pynacl, aby zainstalować go lokalnie).
from base64 import b64encode
from nacl import encoding, public
public_key = "Zgj4+V7vSaEZ06rXazKJUIcUnVa95tUNiwXAif/vdHo="
secret_content = "moj_klucz_api_tutaj"
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"))Możesz następnie stworzyć lub zaktualizować sekret używając wyjściowych danych. Ten przykład tworzy nowy sekret:
curl --location 'https://apis.roblox.com/cloud/v2/universes/6930499524/secrets' \
--request POST \
--header 'Content-Type: application/json' \
--header 'x-api-key: <twoj-sekret-tutaj>' \
--data '{
"id": "mySecret",
"secret": "fP9scJkcDk492F4c1VHZ5QS8v2qsAg7uI+NVVEw6zC0GBnj7xpi7UrNr++lCfr4wyq3ia9Uuu+Ao8HtIXz2gRxBX",
"key_id": "1200590785272263122"
}'Po utworzeniu jednego, zobacz Użyj sekretów, aby użyć swojego sekretu w grze.
Aktualizacja sekretów
Aby zaktualizować powyższy sekret:
curl --location 'https://apis.roblox.com/cloud/v2/universes/6930499524/secrets/mySecret' \
--request PATCH \
--header 'Content-Type: application/json' \
--header 'x-api-key: <twoj-sekret-tutaj>' \
--data '{
"secret": "2Fczw/PL7woOzHnGHQ65sT0MbzJjEOlfibyKxy374CqzFyEb2QTS8grtNBgG/0sfIvSHEo9JWN+pUr0NTPs0V6lj",
"key_id": "1200590785272263122"
}'Jeśli potrzebujesz usunąć sekret, żądanie usunięcia wygląda tak:
curl --location 'https://apis.roblox.com/cloud/v2/universes/6930499524/secrets/mySecret' \
--request DELETE \
--header 'Content-Type: application/json' \
--header 'x-api-key: <twoj-sekret-tutaj>'