開放雲端的資產 API 允許您使用單一 HTTP 請求上傳和更新資產,而不是手動將其匯入 Studio。此 API 支援:
- 上傳新資產。
- 使用版本控制更新現有資產。
- 更新資產元資料,包括描述、顯示名稱、圖示和預覽。
- 管理資產版本,例如回滾到指定的先前版本。
- 檢查資產的現有信息,包括元資料、版本和任何正在進行的更新操作。
支援的資產類型和限制
對於不創建新資產或不更新現有資產內容的端點,沒有限制和限制。然而,由 創建資產 和 更新資產 端點提供的資產內容上傳功能僅支援有限類型的資產並有一定限制。對於每次調用,您只能創建或更新一個資產,文件大小上限為 20 MB,並有以下限制:
| 資產類型 | 格式 | 內容類型 | 限制 |
|---|---|---|---|
| 動畫 |
|
| |
| 音訊 |
|
|
|
| 貼圖,圖像 |
|
|
|
| 網格 | Roblox 僅限 |
|
|
| 模型 |
|
| |
| 視頻 |
|
|
|
安全權限
此 API 支援使用 API 密鑰授權 的第一方使用和在 OAuth 2 應用中的第三方使用。每種方式需要不同的安全權限設置。
API 密鑰
要在自己的腳本或工具中使用 API,您需要 創建一個 API 密鑰 進行授權和安全性。
創建 API 密鑰時,請確保添加以下權限:
- 將 assets 添加到 存取權限。
- 根據您計劃調用的端點所需的範圍,為所選遊戲添加 讀取 和 寫入 操作權限。
擁有 API 密鑰後,將其複製到 x-api-key 請求標頭中。所有端點都需要 x-api-key 請求標頭。
示例 API 請求標頭--header 'x-api-key: ${ApiKey}' \
OAuth 2.0 應用
要將此 API 用於第三方 OAuth 2.0 應用,註冊應用時添加 asset:read 和 asset:write 權限範圍。
創建新資產
要通過 HTTP 請求上傳新資產:
將 API 密鑰複製到 創建資產 端點的 x-api-key 請求標頭中。
在請求中:
- 指定目標 資產類型。
- 添加資產名稱和描述。
- 添加創建者信息。
- 如果您想要代表自己創建資產,請添加您的用戶 ID。您可以在您的 Roblox 個人資料的 URL 中找到您的用戶 ID。例如,對於 https://www.roblox.com/users/1234567/profile,,您的用戶 ID 是 1234567`。
- 如果您想要作為群組資產創建該資產,請添加您群組的群組 ID。您可以在您群組頁面的 URL 中找到群組 ID。例如,對於 https://www.roblox.com/groups/7654321/example-group#!/,,群組 ID 是 7654321`。
- 添加資產的文件路徑和內容類型。
創建資產的請求示例curl --location 'https://apis.roblox.com/assets/v1/assets' \--header 'x-api-key: ${ApiKey}' \--form 'request="{\"assetType\": \"Model\",\"displayName\": \"名稱\",\"description\": \"這是一個描述\",\"creationContext\": {\"creator\": {\"userId\": \"${userId}\" # 使用 groupId 來創建群組資產}}}"' \--form 'fileContent=@"/filepath/model.fbx";type=model/fbx'
更新現有資產
要通過 HTTP 請求更新現有資產:
- 將 API 密鑰複製到 更新資產 端點的 x-api-key 請求標頭中。
- 在請求中添加資產類型和資產 ID。要複製您的資產 ID:
- 導航到 創建者儀表板 的 創建 頁面。
- 選擇 開發項目 類別。
- 選擇您資產的類別並查找目標資產。
- 將鼠標懸停在目標資產的縮略圖上,然後單擊 ⋯ 按鈕顯示選項列表,然後從列表中選擇 複製資產 ID。
更新資產內容的請求示例curl --location --request PATCH 'https://apis.roblox.com/assets/v1/assets/{assetId}' \--header 'x-api-key: {apiKey}' \--form 'request={\"assetType\": \"{assetType}\",\"assetId\": \"{assetId}\",\"creationContext\": {\"creator\": {\"userId\": {userId}},\"expectedPrice\":{expectedPrice}},}' \--form 'fileContent=@"{file-path}"'
檢索資產操作狀態
如果您的創建新資產或更新現有資產的請求成功,則會返回格式為 { "path": "operations/${operationId}" } 的 操作 ID。您可以使用它檢查上傳的狀態和結果,步驟如下:
將 API 密鑰複製到 獲取操作 方法的 x-api-key 請求標頭中,並發送請求,如以下代碼示例所示:
獲取操作的請求示例curl --location 'https://apis.roblox.com/assets/v1/operations/{operationId}' \--header 'x-api-key: {$ApiKey}'如果您的請求成功,則返回 Operation 對象,其中可能包含一個 response,表示上傳的資產信息,或者一個 status,解釋為什麼資產上傳失敗,如以下代碼示例所示:
獲取操作的示例響應{"path": "operations/{operationId}","done": true,"response": {"@type": "type.googleapis.com/roblox.open_cloud.assets.v1.Asset","path": "assets/2205400862","revisionId": "1","revisionCreateTime": "2023-03-02T22:27:04.062164400Z","assetId": "2205400862","displayName": "名稱","description": "這是一個描述","assetType": "ASSET_TYPE_DECAL","creationContext": {"creator": {"userId": "11112938575"}},"moderationResult": {"moderationState": "MODERATION_STATE_APPROVED"}}}(可選)在您的 Roblox 帳號上檢查已創建的資產。
- 導航到您的 Roblox 帳戶 的 庫存 頁面。
- 選擇您想要檢查的資產的 類別。
- 查找目標資產,然後單擊其縮略圖以查看資產。
將資產 API 添加到 OAuth 2.0 應用
您可以創建 OAuth 2.0 應用 支援資產 API,允許您的用戶上傳和更新 Roblox 上的資產。
要在您的應用中使用資產 API 並從用戶那裡請求權限,請執行以下設置:
在 註冊您的應用 時,在 權限 下,選擇 asset:read 和 asset:write 範圍。
在 實作授權流程 時,在授權 URL 中包含 asset:read 和 asset:write 作為範圍參數,將用戶重定向回到您的應用,如以下示例所示:
https://apis.roblox.com/oauth/v1/authorize?client_id=819547628404595165403873012&redirect_uri=https://my-app.com/redirect&scope=asset:read+asset:write&response_type=Code&prompts=login+consent&nonce=12345&state=6789在發送請求時,在授權標頭和請求 URI 中包含資產內容的表單數據中包含訪問令牌。以下示例展示了上傳新資產的請求示例:
請求示例curl --location --request POST 'https://apis.roblox.com/assets/v1/assets' \--header 'Authorization: Bearer <access_token>' \--header 'Content-Type: application/json' \--form 'request="{\"assetType\": \"Decal\",\"displayName\": \"DecalDemo123\",\"description\": \"這是一個描述\",\"creationContext\": {\"creator\": {\"userId\": \"<user_id>\"}}}"' \--form 'fileContent=@"/filepath/p1.png"'