게임 내에서 비밀을 관리하기 외에도 Open Cloud 비밀 저장소 API를 사용하여 비밀을 관리할 수 있습니다.
API를 사용하기 전에 secret-store API 시스템과 함께 API 키를 생성해야 하며, 또는 universe.secret 범위 유형으로 OAuth 2.0 앱을 구성해야 합니다. 이 페이지의 예제는 API 키를 사용합니다.
비밀 암호화
Roblox에서 비밀을 생성하거나 업데이트할 때는 반드시 LibSodium 봉인된 상자와 게임의 공개 키를 사용하여 비밀을 암호화하고, 그 결과를 base64 인코딩해야 합니다.
먼저 게임의 공개 키를 가져옵니다:
curl --location 'https://apis.roblox.com/cloud/v2/universes/{universeId}/secrets/public-key' \--request GET \--header 'x-api-key: <your-secret-here>' \
다음으로, 봉인된 상자를 생성하고 이를 base64로 인코딩합니다. 아래 예제는 Python과 PyNaCl을 사용합니다. (로컬에 설치하려면 pip install pynacl을 실행하세요).
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"))
이제 출력을 사용하여 비밀을 생성하거나 업데이트할 수 있습니다. 이 예제는 새 비밀을 생성합니다:
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"}'
비밀을 생성한 후에는 비밀 사용하기에서 게임 내에서 비밀을 사용하는 방법을 확인하세요.
비밀 업데이트
위의 비밀을 업데이트하려면:
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"}'
비밀을 정리해야 할 필요가 있는 경우, 삭제 요청은 다음과 같습니다:
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>'