Skip to main content

HappyOyster-Adventure-Enter Travel API リファレンス

クライアントは ticket を使用して実際の Travel を作成し、RTC 参加設定と Adventure 機能バージョンを取得します。maxExperienceTimeSec は Adventure モデルでのみ有効です。

スコープ

クライアントは ticket を使用して実際の Travel を作成し、RTC 参加設定を取得します。maxExperienceTimeSec は Adventure モデルでのみ有効です。呼び出し前に、以下を確認してください。
  • 認証:プライマリ API Key は必須ではありません。ticket が入室検証を完了します。取得方法については、認証情報の取得 を参照してください。
  • 前提条件:ticket は Travel 資格情報の取得 から取得したものであり、未期限切れかつ未使用で、World のステータスが ready である必要があります。
  • 呼び出し元:クライアントから呼び出します。

HTTP リクエスト

  • Singapore
  • 中国(北京)
  • 米国(バージニア)
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v2/apps/happyoyster-1.0-adventure/openapi/v1/travels/enter-travel{WorkspaceId} を実際の ワークスペースID に置き換えます。

リクエストパラメーター

  • Travel への入室(クライアント)
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v2/apps/happyoyster-1.0-adventure/openapi/v1/travels/enter-travel' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "ticket": "{ticket}",
    "maxExperienceTimeSec": 90
}'
Content-Typestring(必須)リクエストのコンテンツタイプ。このパラメータは application/json に設定する必要があります。
Authorization string (必須)API キー認証です。プライマリ API キーは必須ではなく、プライマリまたは一時 API キーのいずれかで呼び出せます。
  • プライマリ API Key:sk- で始まります(例:sk-xxx)。
  • 一時 API キー:st- で始まり、例は st-xxx です。
リクエストボディ
ticket string (必須)Travel 資格情報の取得 から取得した、未期限切れかつ未使用の単発資格情報です。同じ ticket を再利用すると 401011 が返されます。
maxExperienceTimeSec integer (任意)最大体験時間(秒単位)。JSON 整数である必要があります。デフォルトは 60 です。許可される値:
  • 60
  • 90
  • 120
文字列やその他の数値は受け付けられません(例:"60" は無効です)。無効なティアを指定すると 400000 が返されます。この時間に達すると、サーバーは自動的に Travel を終了します。

レスポンスパラメーター

  • 入室成功
{
    "code": 0,
    "message": null,
    "data": {
        "encryptedTravelId": "trvl_a1b2****",
        "encryptedWorldId": "enc_a1b2****",
        "mode": 1,
        "creationModel": "simple",
        "playUrl": null,
        "firstFrame": "https://cdn.happyoyster.com/frames/world_xyz789.jpg",
        "rtcConfig": {
            "channelId": "stream_abc123",
            "appId": "18bca2e3218c46aebf8ff3a32fb12311",
            "token": "007eJxTYOh...",
            "userId": "user_1"
        },
        "version": "wanderV2",
        "aspectRatio": null,
        "noStreamAutoEndTimeoutSec": 30,
        "maxExperienceTimeSec": 90
    }
}
code integerリターンコード。0 は成功を意味し、ゼロ以外の値はエラーコードです。
message stringエラーメッセージ。成功時は null です。
data objectレスポンスデータ。失敗時は null です。

プロパティ

encryptedTravelId string新しく作成された暗号化 Travel ID です。後続の Travel ステータスの照会、終了、および成果物の照会に使用されます。encryptedWorldId stringこの Travel に対応する暗号化 World ID です。mode integerAdventure の場合は常に 1 です。creationModel stringAdventure の場合は常に simple です。playUrl nullまだ利用できません。null に固定されています。firstFrame stringWorld の初回フレーム URL です。rtcConfig objectRTC 参加設定です。利用可能なストリーミングチャンネルがない場合は null となり、その場合クライアントはそれに基づいて再生を開始できません。
  • channelId:RTC チャンネル ID
  • appId:プラットフォームによって割り当てられた RTC アプリケーション ID
  • token:RTC 参加トークン
  • userId:RTC 参加ユーザー ID、user_1 に固定
version stringAdventure の入室バージョン。wanderV2 に固定されています。このバージョンに従って、SDK の sendCommand を介して制御データを送信する必要があります。aspectRatio nullAdventure の場合は null に固定されています。プレーヤーのアスペクト比はこのフィールドから読み取られず、初回フレーム画像の比率に従います。noStreamAutoEndTimeoutSec integerストリームなし自動終了タイムアウト(秒単位)、デフォルトは 30 です。実際のレスポンスが優先されます。入室後この時間内に rtcStatus がストリーミング状態にならない場合、failCode=TRAVEL_NO_STREAM_AUTO_END を指定して End Travel を呼び出してください。maxExperienceTimeSec integerサーバーによって実際に採用された体験時間。60 / 90 / 120 のいずれかのみ可能です。この時間に達すると、サーバーは自動的に Travel を終了します。

前提条件となるステータスと呼び出しに関する注意事項

  • ticket に対応する World は ready である必要があり、チケットは未期限切れかつ未使用である必要があります。
  • 呼び出しが成功すると Travel が作成されます。同じ ticket を再利用すると 401011 が返されます。
  • version は wanderV2 として処理する必要があります。他のモデルのインタラクションプロトコルを使用して制御データを送信しないでください。
  • maxExperienceTimeSec に達すると、サーバーは体験を終了します。クライアントは、その後届く終端状態を処理する必要があります。
  • Adventure の方向、視点、およびアクションの制御は、サーバー側の HTTP Open API ではありません。クライアントは対応するプラットフォーム SDK の sendCommand を使用する必要があり、SDK はこれを RTC DataChannel を介して送信します。
  • rtcConfig=null は、現在利用可能なストリーミングチャンネルがないことを意味し、クライアントはそれに基づいて再生を開始できません。

エラーコード

モデルの呼び出しに失敗してエラーが返された場合は、HappyOyster エラーコードを参照して解決してください。

次のステップ

入室成功後:
  • Travel ステータスの照会:2〜5 秒ごとにポーリングして、利用可能なアクションプールを読み取ります。
  • Travel が running になった後、クライアントは SDK の sendCommand を介して方向、視点、およびアクションの制御を送信します。
  • Travel の終了:セッションを終了し、成果物を処理します。