liveChatMessage 資源代表 YouTube 直播聊天室中的即時通訊訊息。資源可包含多種訊息的詳細資料,包括新發布的訊息或粉絲贊助活動。
直播功能預設為啟用,且在直播活動期間提供使用。活動結束後,該活動的聊天室功能將無法使用。
方法
API 支援下列 liveChatMessages 資源方法:
- list
- 列出特定聊天室的即時通訊訊息。立即試用。
- streamList
- 啟用伺服器串流連線,以低延遲接收特定聊天室的即時通訊訊息。 立即試用。
- insert
- 在聊天室中新增訊息或意見調查。立即試用。
- transition
- 轉換直播訊息的狀態。 立即試用。
- 刪除
- 刪除即時通訊訊息。API 要求必須由頻道擁有者或聊天室管理員授權。 立即試用。
資源表示法
下列 JSON 結構顯示 liveChatMessages 資源的格式:
{
"kind": "youtube#liveChatMessage",
"etag": etag,
"id": string,
"snippet": {
"type": string,
"liveChatId": string,
"authorChannelId": string,
"publishedAt": datetime,
"hasDisplayContent": boolean,
"displayMessage": string,
"fanFundingEventDetails": {
"amountMicros": unsigned long,
"currency": string,
"amountDisplayString": string,
"userComment": string
},
"textMessageDetails": {
"messageText": string
},
"userBannedDetails": {
"bannedUserDetails": {
"channelId": string,
"channelUrl": string,
"displayName": string,
"profileImageUrl": string
},
"banType": string,
"banDurationSeconds": unsigned long
},
"memberMilestoneChatDetails": {
"userComment": string,
"memberMonth": unsigned integer,
"memberLevelName": string
},
"newSponsorDetails": {
"memberLevelName": string,
"isUpgrade": bool
},
"superChatDetails": {
"amountMicros": unsigned long,
"currency": string,
"amountDisplayString": string,
"userComment": string,
"tier": unsigned integer
},
"superStickerDetails": {
"superStickerMetadata": {
"stickerId": string,
"altText": string,
"language": string
},
"amountMicros": unsigned long,
"currency": string,
"amountDisplayString": string,
"tier": unsigned integer
},
"pollDetails": {
"metadata": {
"options": {
"optionText": string,
"tally": string,
},
"questionText": string,
"status": enum
},
},
"membershipGiftingDetails": {
"giftMembershipsCount": integer,
"giftMembershipsLevelName": string
},
"giftMembershipReceivedDetails": {
"memberLevelName": string,
"gifterChannelId": string,
"associatedMembershipGiftingMessageId": string
},
"giftDetails": {
"jewelsAmount": integer,
"giftName": string,
"giftUrl": string,
"giftDuration": object,
"seconds": integer,
"nanos": integer,
"hasVisualEffect": boolean,
"comboCount": integer,
"altText": string,
"language": string
},
},
"authorDetails": {
"channelId": string,
"channelUrl": string,
"displayName": string,
"profileImageUrl": string,
"isVerified": boolean,
"isChatOwner": boolean,
"isChatSponsor": boolean,
"isChatModerator": boolean
},
}屬性
下表定義這個資源中顯示的屬性:
| 屬性 | |
|---|---|
kind |
string識別 API 資源的類型。值為 youtube#liveChatMessage。 |
etag |
etag這項資源的 Etag。 |
id |
stringYouTube 指派的 ID,用於識別訊息。 注意:如果是 giftEvents,可以重複使用相同 ID 來更新連擊次數。 |
snippet |
objectsnippet 物件包含有關即時通訊訊息的核心詳細資料。 |
snippet.type |
string訊息類型。這項屬性一律會顯示,其值會決定資源中顯示的欄位。 這項屬性的有效值如下:
|
snippet.liveChatId |
string與訊息相關聯的聊天室專屬 ID。與直播相關聯的聊天室 ID 會在 liveBroadcast 資源的 snippet.liveChatId 屬性中傳回。 |
snippet.authorChannelId |
string訊息作者的使用者 ID。這個欄位只會填入下列訊息類型:
|
snippet.publishedAt |
datetime訊息的原始發布日期和時間。值以 ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ) 格式指定。 |
snippet.hasDisplayContent |
boolean指出訊息是否含有應向使用者顯示的內容。 |
snippet.displayMessage |
string包含向使用者顯示的字串。如果訊息類型為 chatEndedEvent 或 tombstone,則不會顯示這個欄位。 |
snippet.fanFundingEventDetails |
object注意:這個物件及其子項屬性已淘汰。自 2017 年 2 月 28 日起, liveChatMessage 資源將不再傳回粉絲贊助活動的詳細資料。這個物件包含贊助活動的詳細資料。只有在訊息類型為 fanFundingEvent 時,才會顯示這個欄位。 |
snippet.fanFundingEventDetails.amountMicros |
unsigned long注意:這項屬性已淘汰。 基金金額。 |
snippet.fanFundingEventDetails.currency |
string注意:這項屬性已淘汰。 基金的幣別。 |
snippet.fanFundingEventDetails.amountDisplayString |
string注意:這個屬性已淘汰。 向使用者顯示基金金額和幣別的已算繪字串。 |
snippet.fanFundingEventDetails.userComment |
string注意:這項屬性已淘汰。 使用者為這項粉絲贊助活動新增的留言。 |
snippet.textMessageDetails |
object這個物件包含簡訊的詳細資料。只有在訊息類型為 textMessageEvent 時,才會顯示這項資訊。 |
snippet.textMessageDetails.messageText |
string使用者的訊息。 |
snippet.userBannedDetails |
object這個物件包含遭禁止參與聊天的使用者詳細資料。以及禁令本身的詳細資料。使用者可能會遭到永久或暫時禁止進入聊天室。 |
snippet.userBannedDetails.bannedUserDetails |
object這個物件包含遭停權使用者的相關資訊。 |
snippet.userBannedDetails.bannedUserDetails.channelId |
string遭封鎖使用者的 YouTube 頻道 ID。 |
snippet.userBannedDetails.bannedUserDetails.channelUrl |
string遭封鎖使用者的 YouTube 頻道網址。 |
snippet.userBannedDetails.bannedUserDetails.displayName |
string遭禁止使用者 YouTube 頻道的顯示名稱。 |
snippet.userBannedDetails.bannedUserDetails.profileImageUrl |
string遭封鎖使用者的 YouTube 頻道顯示圖片。 |
snippet.userBannedDetails.banType |
string禁止類型。這個屬性的有效值如下:
|
snippet.userBannedDetails.banDurationSeconds |
unsigned long停權時間長度。只有在 snippet.userBannedDetails.banType 屬性值為 temporary 時,才會顯示這個屬性。 |
snippet.memberMilestoneChatDetails |
object這個物件包含會員里程碑事件的詳細資料。只有在訊息類型為 memberMilestoneChatEvent 時,才會顯示這個欄位。 |
snippet.memberMilestoneChatDetails.userComment |
string會員在會員里程碑訊息中新增的留言。如果訊息不含成員的留言,這個欄位會留空。 |
snippet.memberMilestoneChatDetails.memberMonth |
unsigned integer觀眾成為會員的總月數 (無條件進位),這項資訊會決定他們能否傳送會員里程碑訊息。這與 YouTube 使用者看到的月份數相同。 |
snippet.memberMilestoneChatDetails.memberLevelName |
string觀眾的會員等級名稱。等級名稱由提供會員方案的 YouTube 頻道定義。在某些情況下,這個欄位不會填入任何內容。 |
snippet.newSponsorDetails |
object這個物件包含新成員公告事件的詳細資料。只有在類型為 newSponsorEvent 時,才會設定這個值。「會員」一詞是指「贊助者」。
|
snippet.newSponsorDetails.memberLevelName |
string觀眾所屬的會員等級名稱。等級名稱由提供會員方案的 YouTube 頻道定義。在某些情況下,這個欄位不會填入資料。 |
snippet.newSponsorDetails.isUpgrade |
bool表示觀眾是否剛從較低等級升級。如果觀眾在購買時不是會員,則欄位值為 false。
|
snippet.superChatDetails |
object這個物件包含超級留言事件的詳細資料。只有在訊息類型為 superChatEvent 時,才會顯示這項資訊。 |
snippet.superChatDetails.amountMicros |
unsigned long購買金額,以購買幣別的百萬分之一為單位。舉例來說,如果購買金額為一美元, snippet.amountMicros 屬性值就是 1000000。 |
snippet.superChatDetails.currency |
string購買時使用的幣別。值為 ISO 4217 貨幣代碼。 |
snippet.superChatDetails.amountDisplayString |
string包含購買金額和幣別的字串,例如 $1.00。字串會向使用者顯示。 |
snippet.superChatDetails.userComment |
string使用者為這項超級留言事件新增的留言。 |
snippet.superChatDetails.tier |
unsigned integer付費訊息的等級。請注意,在 superChatEvent 資源中,snippet.messageType 屬性包含這個值。等級取決於購買訊息時的消費金額。此外,這項資訊也會決定在聊天室使用者介面中醒目顯示訊息的顏色、訊息長度上限,以及訊息在跑馬燈中置頂的時間。 如要瞭解超級留言等級,請前往 YouTube 說明中心。(請參閱超級留言購買詳情的可展開部分)。在該清單中,購買金額最低的級別為第 1 級,次低金額為第 2 級,依此類推。 |
snippet.superStickerDetails |
object這個物件包含超級貼圖事件的詳細資料。只有在訊息類型為 superStickerEvent 時,才會顯示這項資訊。 |
snippet.superStickerDetails.superStickerMetadata |
object超級貼圖的詳細資料。 |
snippet.superStickerDetails.superStickerMetadata.stickerId |
string用於識別貼圖圖片的專屬 ID。請注意,使用者在 YouTube 聊天視窗中只會看到超級貼圖訊息,不會看到圖片。不過,您無法透過 API 取得圖片網址。如要瞭解貼圖 ID 與超級貼圖的對應關係,請參閱這份 CSV 檔案。 |
snippet.superStickerDetails.superStickerMetadata.altText |
string描述貼圖的文字字串。 snippet.superStickerDetails.superStickerMetadata.language 欄位會識別文字的語言。呼叫 liveChatMessages.list 方法時,請將 hl 參數值設為所選文字語言。 |
snippet.superStickerDetails.superStickerMetadata.language |
stringsnippet.superStickerDetails.superStickerMetadata.altText 屬性值的語言。 |
snippet.superStickerDetails.amountMicros |
unsigned long購買金額,以購買幣別的百萬分之一為單位。舉例來說,如果購買金額為一美元, snippet.amountMicros 屬性值為 1000000。 |
snippet.superStickerDetails.currency |
string購買時使用的幣別。值為 ISO 4217 貨幣代碼。 |
snippet.superStickerDetails.amountDisplayString |
string字串,例如 $1.00,包含購買金額和幣別。這個字串會顯示給使用者。 |
snippet.superStickerDetails.tier |
unsigned integer付費訊息的等級。請注意,在 superChatEvent 資源中,snippet.messageType 屬性包含這個值。等級取決於購買訊息時的消費金額。此外,這項屬性也會決定聊天室使用者介面中醒目顯示訊息的顏色、訊息長度上限,以及訊息在跑馬燈中置頂的時間長度。 超級留言等級 (也涵蓋超級貼圖) 的相關說明,請參閱 YouTube 說明中心。(請參閱超級留言購買詳情的展開式部分)。在該清單中,購買金額最低的層級是第 1 級,次低的金額是第 2 級,依此類推。 |
snippet.pollDetails |
object這個物件包含意見調查事件的詳細資料。只有在訊息類型為 pollEvent 時,才會顯示這個欄位。 |
snippet.pollDetails.metadata |
object意見調查活動的詳細資料。 |
snippet.pollDetails.metadata.options |
object即時意見調查中的選項。 |
snippet.pollDetails.metadata.options.optionText |
string即時意見調查選項的文字。 |
snippet.pollDetails.metadata.options.tally |
string即時意見調查選項的票數。只有在頻道擁有者授權 API 要求時,才會顯示票數。 |
snippet.pollDetails.metadata.questionText |
string即時意見調查問題的文字。 |
snippet.pollDetails.metadata.status |
enum即時投票活動的狀態。這項屬性的有效值如下:
|
snippet.membershipGiftingDetails |
object這個物件包含會籍贈送事件的詳細資料。只有在 message type 為 membershipGiftingEvent 時,才會顯示這個欄位。 |
snippet.membershipGiftingDetails.giftMembershipsCount |
integer使用者購買的贈送的會籍數量。 |
snippet.membershipGiftingDetails.giftMembershipsLevelName |
string使用者購買的贈送的會籍等級名稱。等級名稱由提供會員方案的 YouTube 頻道定義。在某些情況下,這個欄位不會填入任何內容。 |
snippet.giftMembershipReceivedDetails |
object這個物件包含「收到贈送的會籍」事件的詳細資料。只有在 message type 為 giftMembershipReceivedEvent 時,才會顯示這個欄位。 |
snippet.giftMembershipReceivedDetails.memberLevelName |
string觀眾所屬的會員等級名稱。這會與相關會籍贈送訊息的 snippet.membershipGiftingDetails.giftMembershipsLevelName 相符。等級名稱由提供會員方案的 YouTube 頻道定義。在某些情況下,這個欄位不會填入資料。 |
snippet.giftMembershipReceivedDetails.gifterChannelId |
string購買會籍贈送的使用者 ID。這與相關會籍贈送訊息的 snippet.authorChannelId 相符。 |
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId |
string與這項贈送的會籍相關聯的會籍贈送訊息 ID。這個 ID 一律會參照 type 為 membershipGiftingEvent 的訊息。 |
snippet.giftDetails |
object這個物件包含贈禮事件的詳細資料。只有在 message type 為 giftEvent 時才會顯示。 |
snippet.giftDetails.jewelsAmount |
integer兌換禮物所需的寶石數量。 |
snippet.giftDetails.giftName |
string禮物名稱。 |
snippet.giftDetails.giftUrl |
string禮物素材資源的網址。 |
snippet.giftDetails.giftDuration |
object顯示贈禮網址的時間長度。 |
snippet.giftDetails.giftDuration.seconds |
integer顯示禮物網址的秒數。 |
snippet.giftDetails.giftDuration.nanos |
integer顯示禮物網址的奈秒數。 |
snippet.giftDetails.hasVisualEffect |
boolean禮物是否具有視覺效果。 |
snippet.giftDetails.comboCount |
integer禮物的連續贈送次數;如果不是連續贈送,則為 0。 |
snippet.giftDetails.altText |
string描述禮物的文字字串。 |
snippet.giftDetails.language |
stringaltText 屬性值的語言。 |
authorDetails |
objectauthorDetails 物件包含發布這則訊息的使用者詳細資料。 |
authorDetails.channelId |
string作者的 YouTube 頻道 ID。 |
authorDetails.channelUrl |
string作者的 YouTube 頻道網址。 |
authorDetails.displayName |
string作者 YouTube 頻道的顯示名稱。 |
authorDetails.profileImageUrl |
string作者 YouTube 頻道的顯示圖片網址。 |
authorDetails.isVerified |
boolean這個值代表作者的身分是否已通過 YouTube 驗證。 |
authorDetails.isChatOwner |
boolean這個值代表作者是否為聊天室擁有者。 |
authorDetails.isChatSponsor |
boolean這個值表示作者是否為聊天室的贊助者。 |
authorDetails.isChatModerator |
boolean這個值表示作者是否為聊天室的版主。 |