Open Cloud の アセット API により、マニュアルで Studio にインポートすることなく、HTTP リクエスト でアセットをアップロードし、更新できます。このAPIは次のことをサポートしています:
- 新しいアセットをアップロードしています。
- バージョンコントロールで既存のアセットを更新します。
- 説明、表示名、アイコン、プレビューなどのアセットメタデータを更新します。
- ローリングバックなど、アセットバージョンを管理する。
- アセットの既存情報をチェックしています。これには、メタデータ、バージョン、およびインプロセス中の更新オペレーションが含まれます。
サポートされたアセットタイプと制限
新しいアセットを作成または既存のアセットのコンテンツを更新しない場合、エンドポイントに制限や限度はありません。ただし、アセットコンテンツのアップロード機能を搭載した アセットクリエーション および アセット更新 エンドポイントは、アセ
アセットタイプ | フォーマット | コンテンツタイプ | 制限 |
---|---|---|---|
オーディオ |
|
| 最大7分間の長さ。 IDを確認済みの場合は、1ヵ月あたり100アップロード。 更新はできません。 1> 更新できません。1> 4> 更新できません。4> 7> 更新できません。 7> 9> 更新できませ |
デカール | .png > .jpeg > 0> .bmp0> >0> 4> 5> .tga5> >4> | image/png > image/jpeg > 0> image/bmp0> >0> 2> 3> image/tga 3> >2> > |
|
モデル |
|
| ユースケースに応じて、3D インポーターを使用して特定のモデルを手動でアップロードすることを検討してください。 3D インポーターは、3D プレビュー、さまざまなエラーチェック、および多くのカスタマイズ可能なインポート設定を提供します。 |
ビデオ |
|
| 最大30秒の長さ。 最大4096x2160の解像度。 最大375MB。 1>現在、英語と/またはスペイン語のみのアップロードが許可されています。1> 4>最大3上ロードは毎月です。 |
セキュリティ許可
API は、API キーの認証と、OAuth 2 アプリケーション の 3つのサードパーティ使用をサポートしています。それぞれの方法には異なるセキュリティ許可設定が必要です。
API キー
自分のスクリプトやツールでAPIを使用するには、API のキーを作成する必要があります。グループ所有のアセットを管理するには、アカウントの下で API キーを作成します。グループ所有のアセットを管理するには、ターゲットグループの下で API キーを作成します。<
API キーを作成すると、個人またはグループ間で所有権を切り替えることはできません。たとえあなたが自分のアカウントで API キーを作成しても、グループアセットの管理には使用できません。
API キーを自分自身が作成するか、グループにとって作成するかにかかわらず、次のパーミッションを追加してください:
- アセットを アクセス権限 に追加する。
- 必要なスコープに応じて、 Read と Write オペレーションの権限を選択したエクスペリエンスに追加します。
API キーを入手したら、x-api-key リクエストヘッダーにコピーします。すべてのエンドポイントは、x-api-key リクエストヘッダーを必要とします。
Example API Request Header
--header 'x-api-key: ${ApiKey}' \
OAuth 2.0 アプリ
APIをサードパーティの OAuth 2.0 アプリに使用するには、asset:read と asset:write 権限スコープを追加して、アプリを登録する です。これらのスコープは、エンドポイントの要件に基づいて選択します。
新しいアセットを作成する
HTTP リクエストで新しいアセットをアップロードするには:
API キーを x-api-key のリクエストヘッダーにコピーします。 コピーした API キーは x-api-key のリクエストヘッダーにコピーされます。
リクエストで:
- ターゲットの アセットタイプ を指定します。
- アセット名と説詳細を追加します。
- クリエイター情報を追加します。
- アセットを 自分の名前で作成する 場合は、あなたのユーザー ID を追加します。您のユーザー ID は Roblox プロフィールの URL で見つけることができます。たとえば、 https://www.roblox.com/users/1234567/profile の場合、あなたのユーザー ID は 12
- アセットをグループアセットとして作成したい場合は、グループのグループ ID を追加します。グループのグループ ID は、グループのページの URL で見つけることができます。たとえば、 https://www.roblox.com/groups/7654321/example-group#!/' のグループ ID は
- アセットのファイルパスとコンテンツタイプを追加します。
Example Request for Create Assetcurl --location 'https://apis.roblox.com/assets/v1/assets' \--header 'x-api-key: ${ApiKey}' \--form 'request="{\"assetType\": \"Model\",\"displayName\": \"Name\",\"description\": \"This is a description\",\"creationContext\": {\"creator\": {\"userId\": \"${userId}\" # グループアセットを作成するためにグループID を使用}}}"' \--form 'fileContent=@"/filepath/model.fbx";type=model/fbx'
既存のアセットを更新する
既存のアセットを HTTP リクエストで更新するには:
- API キーを x-api-key のリクエストヘッダーにコピーします。 更新アセットの端末の Update Asset リクエストヘッダーに。
- リクエストにアセットタイプとアセット ID を追加します。アセット ID をコピーするには:
- Navigate to the クリエイターダッシュボードの Creation page.
- Select the 開発アイテム categorカテゴリ.
- アセットのカテゴリを選択し、ターゲットアセットを見つけます。
- ターゲットアセットのサムネイルにカーソルを置き、 [...] ボタンをクリックしてオプションのリストを表示し、リストから [...] を選択します。
Example Request for Updating Asset Content
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}"'
アセットオペレーションステータスを取得する
新しいアセットを作成または既存のアセットを更新するリクエストが成功すると、オペレーション ID をフォーマットの { "path": "operations/${operationId}" } で返します。"path": "OperationsId" ] を使用して、次のステップでアップロードのステータスと結果を確認できます:
API キーを x-api-key 要件ヘッダーにコピーし、オペレーションを取得する メソッドのリクエストヘッダーと一緒にリクエストを送信し、次のコードサンプルと同じように:
Example Request for Get Operationcurl --location 'https://apis.roblox.com/assets/v1/operations/{operationId}' \--header 'x-api-key: {$ApiKey}'リクエストが成功すると、アセットのアップロード済み情報を含む Operation オブジェクトを返します。アセットのアップロード失敗の理由を説明する response オブジェクトを含む、次のコードサンプルに示すように、アセットのアップロードが失敗した理由を含む 1 つのオブジェクトです:
Example Response for Get Operation{"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": "Name","description": "This is a description","assetType": "ASSET_TYPE_DECAL","creationContext": {"creator": {"userId": "11112938575"}},"moderationResult": {"moderationState": "MODERATION_STATE_APPROVED"}}}(オプション) Roblox アカウントで作成されたアセットをチェックします。
- Navigate to the Roblox アカウントのインベントリ page of your Roblox アカウント .
- チェックしたいアセットの カテゴリ を選択します。
- ターゲットアセットを見つけ、サムネイルをクリックしてアセットを表示します。
OAuth 2.0 アプリにアセットを追加する
OAuth 2.0 アプリケーションを作成 アセット API をサポートして、ユーザーが Roblox にアセットをアップロードして更新できるようにします。
アセット API を使用して、アプリケーションにアクセスし、ユーザーからの許可をリクエストするには、次の設定を実行してください:
アプリケーションを登録する と、 パーミッション の下で、 アセット:読み取り と 1>アセット:書き込み1> のスコープを選択します。
「アーチテクトフローを実装する」、 asset:rea既読 と asset:write をスコープパラメーターとして含める と、次の例のように、ユーザーをあなたのアプリにリダイレクトするオースント URLのスコープパラメーターに含める:
https://www.authorize.roblox.com?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リクエストを送信すると、アクセストークンを含むオーライジンヘッダーとアセットコンテンツのフォームデータを含めて、リクエスト内のリクエスト URL で作成または更新します。次の例では、新しいアセットをアップロードするためのサンプルリクエストを示しています:
リクエストの例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\": \"This is a description\",\"creationContext\": {\"creator\": {\"userId\": \"<user_id>\"}}}"' \--form 'fileContent=@"/filepath/p1.png"'