Skip to main content

HappyOyster-Directing-用戶端進入房間 API參考

用戶端使用 ticket 建立實際 Travel,並獲取 RTC 入會配置和 Directing 能力版本。creationModel 決定 Travel 可呼叫的控制介面。

適用範圍

用戶端使用 ticket 建立實際 Travel,並獲取 RTC 入會配置。呼叫前請確認以下事項:
  • 驗證要求:不強制主 API Key,使用 ticket 完成進房驗證。獲取方式請參閱獲取驗證憑證。
  • 前置條件:ticket 由獲取體驗憑證介面換取,未過期且未使用,對應 World 狀態為 ready。
  • 呼叫方:由您的用戶端呼叫。

HTTP 呼叫

  • 新加坡
  • 美国(維吉尼亞)
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v2/apps/happyoyster-1.0-directing/openapi/v1/travels/enter-travel呼叫時請將 {WorkspaceId} 替換為真實的 Workspace ID。

請求參數

  • 用戶端進入房間
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v2/apps/happyoyster-1.0-directing/openapi/v1/travels/enter-travel' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "ticket": "{ticket}"
}'
Content-Typestring(必選)請求內容類型。此參數必須設定為 application/json。
Authorization string (必選)API Key 驗證。不強制使用主 API Key,主 API Key 或臨時 API Key 均可呼叫。
  • 主 API Key:以 sk- 開頭,如 sk-xxx。
  • 臨時 API Key:以 st- 開頭,如 st-xxx。
請求主體(Request Body)
ticket string (必選)未過期且未使用的一次性憑證。由取得體驗憑證介面換取。同一 ticket 再次使用返回 401011。
Directing 進房不消耗 maxExperienceTimeSec,請勿傳入。該欄位僅 Adventure 生效;若仍傳入非法檔位,會在模型分流前返回 400000。成功回應仍為 null。

回應參數

进房成功
{
    "code": 0,
    "message": null,
    "data": {
        "encryptedTravelId": "trvl_a1b2****",
        "encryptedWorldId": "enc_a1b2****",
        "mode": 2,
        "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": "storyV2",
        "aspectRatio": null,
        "noStreamAutoEndTimeoutSec": 30,
        "maxExperienceTimeSec": null
    }
}
code integer返回碼。0 表示成功,非 0 為錯誤碼。
message string錯誤訊息。成功時為 null。
data object回應資料。失敗時為 null。

屬性

encryptedTravelId string新建立的加密 Travel ID。後續查詢Travel狀態、回溯、暫停、恢復、結束、產物查詢均使用此值。encryptedWorldId string當前 Travel 對應的加密 World ID。mode integerDirecting 恆為 2。creationModel stringsimple 或 scriptlist;決定 Travel 可呼叫的控制介面:
  • simple:instruct、pause、resume、rewind、end
  • scriptlist:update-script、pause、resume、rewind、end(不支援 instruct)
playUrl null暫不可用,固定為 null。firstFrame stringWorld 首幀 URL。rtcConfig objectRTC 入會設定;沒有可用推流頻道時為 null,用戶端不能據此開始播放。
  • channelId:RTC 頻道 ID
  • appId:平台分配的 RTC 應用程式 ID
  • token:RTC 入會 Token
  • userId:RTC 入會使用者 ID,固定為 user_1
version stringDirecting 進房版本,固定為 storyV2。aspectRatio nullDirecting 模型固定為 null。noStreamAutoEndTimeoutSec integer無推流自動結束逾時秒數,預設為 30,以實際回應為準。進房後若在此時間內 rtcStatus 未進入推流狀態,應呼叫結束 Travel並傳入 failCode=TRAVEL_NO_STREAM_AUTO_END。maxExperienceTimeSec nullDirecting 模型固定為 null。

前置狀態與呼叫注意事項

  • ticket 對應的 World 必須為 ready,且 ticket 未過期、未使用。
  • 不要傳 maxExperienceTimeSec。Directing 不按該欄位限制體驗時長。
  • 呼叫成功即建立 Travel;同一 ticket 再次使用返回 401011。
  • creationModel=scriptlist 時不要呼叫 instruct,應使用劇本全量更新。
  • rtcConfig=null 表示當前沒有可用推流頻道,用戶端不能據此開始播放。

錯誤碼

如果模型呼叫失敗並返回錯誤訊息,請參閱 HappyOyster 錯誤碼進行解決。

下一步

進房成功後: