保利威文档中心

幫助中心

講師透過 HTTP 回覆學員提問

更新時間:2026-05-12 09:47:23

接口描述

由業務服務端呼叫,在指定頻道內以講師身份回覆某位觀眾的「提問私聊」記錄; 行為與聊天室 WebSocket 事件 T_ANSWER 對齊(寫入提問記錄、更新列表資料、向仍在線的相關用戶推送 message)。 接口支援 HTTPS 協定。

接口URL

https://api.polyv.net/live/v5/chat/redirect/channel/teacher-answer/post

請求方式

POST

接口約束

1、接口同時支援 HTTP、HTTPS,建議使用 HTTPS 確保接口安全。
2、**viewerUserId** 為被回覆的觀眾在業務裡的用戶 ID。若該觀眾當前正以觀眾身份在目標頻道內在線(已連上聊天室),系統可識別其連線並優先用於即時推送;若未在線,仍會落庫,但即時推送可能無法送達該觀眾。
3、講師展示資訊:若頻道內能識別到已在線的講師身份(與頻道約定規則一致),將使用該講師的暱稱、頭像等;若當前沒有在線講師資訊可識別,須在請求裡傳 teacherNickteacherPic,否則展示欄位可能為空。
4、
msgType
可選;不傳或空則按文字處理。傳 image 表示圖片回覆,此時 content 須為 JSON 字串,物件欄位為:width(number)、height(number)、url(string)、id(string,可選),與 WebSocket T_ANSWER 及站內圖片提問格式一致;服務端會走圖片校驗邏輯。

請求體參數描述

參數名 必選 類型 說明
appId true String 帳號appId【詳見取得金鑰
timestamp true Long 當前13位毫秒級時間戳,3分鐘內有效
sign true String 簽名,為32位大寫的MD5值,產生簽名的appSecret金鑰作為通訊資料安全的關鍵資訊,嚴禁保存在客戶端直接使用,所有API都必須透過客戶自己伺服器中轉呼叫POLYV伺服器取得回應資料【詳見簽名產生規則
roomId true String(1,100) 頻道號(與觀眾/講師在聊天室登入時使用的 channelId / roomId 一致)
content true String(1,10000) 文字回覆時為正文;msgTypeimage須為 JSON 字串,序列化物件格式為 { "width": number, "height": number, "url": string, "id"?: string }
viewerUserId true String(1,2000) 被回覆的觀眾 userId(提問側學員的業務 ID)
teacherNick false String 講師暱稱;當頻道內沒有可識別的在線講師資訊時建議傳入,否則展示可能為空
teacherPic false String 講師頭像 URL;當頻道內沒有可識別的在線講師資訊時建議傳入
msgType false String 可選。傳 image 表示圖片回覆,與 WebSocket T_ANSWER 一致;不傳則按文字回覆處理

範例

請求體 JSON:

{
  "roomId": "412738",
  "content": "同学你好,这个问题我们在第二节课会讲到。",
  "viewerUserId": "user_abc_001",
  "teacherNick": "王老师",
  "teacherPic": "https://liveimages.videocc.net/defaultImg/avatar/viewer.png"
}

圖片回覆範例(msgTypeimagecontent 為 JSON 字串):

{
  "roomId": "412738",
  "viewerUserId": "user_abc_001",
  "msgType": "image",
  "content": "{\"width\":640,\"height\":360,\"url\":\"https://example.com/img.png\",\"id\":\"img_001\"}",
  "teacherNick": "王老师",
  "teacherPic": "https://liveimages.videocc.net/defaultImg/avatar/viewer.png"
}

回應體 JSON(成功):

{
  "code": 200,
  "status": "success",
  "message": "发送成功",
  "data": {
    "id": 123456
  }
}

其中 data.id 為該條回覆寫入提問流水後的記錄 ID(與 socket 回呼中 T_ANSWER 的 id 含義一致)。

WebSocket 推送說明

呼叫成功後,服務端會向聊天室推送 message 事件,內容為 JSON 字串,解析後 **EVENTT_ANSWER**,主要欄位包括:roomIdcontentuser(講師展示資訊)、s_userId(被回覆的觀眾 userId)、id(本條回覆 id)、msgType 等。

  • 觀眾:若該觀眾當前仍在該頻道聊天室中在線,一般能收到上述推送;若已離線或未連線,則無法收到即時訊息,但歷史提問列表中仍可出現本條回覆(以各端列表接口為準)。
  • 講師:若講師當前正以講師身份在該頻道內在線,一般能收到推送;若講師未在線或未以可識別身份連線,則可能收不到即時推送,但記錄仍會寫入。

透過講師端 WebSocket 自行發送 T_ANSWER 時,還可能向整個頻道房間廣播;本 HTTP 接口以服務端判定在線連線並定向推送為主,具體與實現保持一致。

回應參數描述

參數名 類型 說明
code Integer 200 表示成功;400 多為參數校驗失敗;500 多為業務錯誤或服務端異常
status String success / fail / error
message String 提示文案,如「發送成功」或具體錯誤說明
data Object 成功時包含 id(回覆記錄 ID);失敗時可為空或附帶校驗資訊

異常範例

參數校驗失敗(與 checkDataType 返回一致):

{
  "code": 400,
  "status": "fail",
  "message": "缺少参数roomId"
}

頻道與帳號不匹配(x-auth-user-idroomId 歸屬不一致):

{
  "code": 400,
  "status": "fail",
  "message": "roomId非法"
}

未傳 x-auth-user-id(中介軟體直接返回,HTTP 狀態碼多為 500,body 仍為 JSON):

{
  "code": 400,
  "status": "fail",
  "message": "accountId is required"
}

服務端異常:

{
  "code": 500,
  "status": "error",
  "message": "unknown error"
}

(具體 message 以實際錯誤資訊為準。)

联系客服,在线咨询