ทรัพยากร 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 |
etagEtag ของทรัพยากรนี้ |
id |
stringรหัสที่ YouTube กำหนดเพื่อระบุข้อความอย่างไม่ซ้ำกัน หมายเหตุ: สำหรับ giftEvents ระบบอาจใช้รหัสเดียวกันซ้ำเพื่ออัปเดตจำนวนคอมโบ |
snippet |
objectออบเจ็กต์ snippet มีรายละเอียดหลักเกี่ยวกับข้อความแชท |
snippet.type |
stringประเภทของข้อความ พร็อพเพอร์ตี้นี้จะแสดงเสมอ และค่าของพร็อพเพอร์ตี้นี้จะกำหนดว่าฟิลด์ใดจะแสดงในทรัพยากร ค่าที่ใช้ได้สำหรับพร็อพเพอร์ตี้นี้มีดังนี้
|
snippet.liveChatId |
stringรหัสที่ไม่ซ้ำกันซึ่งระบุแชทสดที่เชื่อมโยงกับข้อความ ระบบจะแสดงรหัสแชทสดที่เชื่อมโยงกับการออกอากาศในพร็อพเพอร์ตี้ snippet.liveChatId ของทรัพยากร liveBroadcast |
snippet.authorChannelId |
stringรหัสของผู้ใช้ที่เขียนข้อความ ระบบจะกรอกข้อมูลในช่องนี้สำหรับข้อความประเภทต่อไปนี้เท่านั้น
|
snippet.publishedAt |
datetimeวันที่และเวลาที่เผยแพร่ข้อความครั้งแรก โดยค่าจะระบุในรูปแบบ ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ) |
snippet.hasDisplayContent |
booleanระบุว่าข้อความมีเนื้อหาที่ควรแสดงต่อผู้ใช้หรือไม่ |
snippet.displayMessage |
stringมีสตริงที่แสดงต่อผู้ใช้ ฟิลด์นี้จะไม่มีหากประเภทข้อความเป็น chatEndedEvent หรือ tombstone |
snippet.fanFundingEventDetails |
objectหมายเหตุ: เราเลิกใช้งานออบเจ็กต์นี้และพร็อพเพอร์ตี้ย่อยแล้ว ตั้งแต่วันที่ 28 กุมภาพันธ์ 2017 เป็นต้นไป ทรัพยากร 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 ของผู้ใช้ที่ถูกแบน |
snippet.userBannedDetails.bannedUserDetails.channelUrl |
stringURL ของช่อง 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ออบเจ็กต์นี้มีรายละเอียดเกี่ยวกับเหตุการณ์ Super Chat โดยจะแสดงก็ต่อเมื่อประเภทข้อความเป็น superChatEvent เท่านั้น |
snippet.superChatDetails.amountMicros |
unsigned longยอดรวมการซื้อในหน่วยไมโครของสกุลเงินที่ใช้ซื้อ เช่น หากยอดรวมการซื้อคือ 1 ดอลลาร์ ค่าพร็อพเพอร์ตี้ snippet.amountMicros จะเป็น 1000000 |
snippet.superChatDetails.currency |
stringสกุลเงินที่ใช้ในการซื้อ ค่านี้คือรหัสสกุลเงิน ISO 4217 |
snippet.superChatDetails.amountDisplayString |
stringสตริง เช่น $1.00 ที่มียอดรวมการซื้อและสกุลเงิน สตริงนี้มีไว้เพื่อแสดงต่อผู้ใช้ |
snippet.superChatDetails.userComment |
stringความคิดเห็นที่ผู้ใช้เพิ่มลงในกิจกรรม Super Chat นี้ |
snippet.superChatDetails.tier |
unsigned integerระดับของข้อความที่ชำระเงิน โปรดทราบว่าในทรัพยากร superChatEvent พร็อพเพอร์ตี้ snippet.messageType จะมีค่านี้ระดับจะอิงตามจำนวนเงินที่ใช้ซื้อข้อความ นอกจากนี้ ยังกำหนดสีที่ใช้ไฮไลต์ข้อความใน UI ของแชทสด ความยาวสูงสุดของข้อความ และระยะเวลาที่ปักหมุดข้อความไว้ในแถบเลื่อน คุณดูข้อมูลเกี่ยวกับระดับของ Super Chat ได้ในศูนย์ช่วยเหลือของ YouTube (ดูส่วนที่ขยายได้เกี่ยวกับรายละเอียดการซื้อ Super Chat) ในรายการนั้น ระดับที่มีจำนวนการซื้อต่ำสุดคือระดับ 1 จำนวนที่ต่ำสุดถัดไปคือระดับ 2 และอื่นๆ |
snippet.superStickerDetails |
objectออบเจ็กต์นี้มีรายละเอียดเกี่ยวกับเหตุการณ์ Super Stickers โดยจะแสดงก็ต่อเมื่อประเภทข้อความเป็น superStickerEvent เท่านั้น |
snippet.superStickerDetails.superStickerMetadata |
objectรายละเอียดเกี่ยวกับ Super Stickers |
snippet.superStickerDetails.superStickerMetadata.stickerId |
stringรหัสที่ไม่ซ้ำกันซึ่งระบุรูปภาพสติกเกอร์ โปรดทราบว่ารูปภาพจะแสดงเป็นส่วนหนึ่งของข้อความ Super Sticker เท่านั้นเมื่อผู้ใช้ดูหน้าต่างแชทบน YouTube อย่างไรก็ตาม URL ของรูปภาพจะใช้ไม่ได้เมื่อใช้ API คุณดูรหัสสติกเกอร์ที่เกี่ยวข้องกับ Super Stickers แต่ละรายการได้ในไฟล์ CSV นี้เพื่อใช้เป็นข้อมูลอ้างอิงเท่านั้น |
snippet.superStickerDetails.superStickerMetadata.altText |
stringสตริงข้อความที่อธิบายสติกเกอร์ ฟิลด์ snippet.superStickerDetails.superStickerMetadata.language จะระบุภาษาของข้อความ เมื่อเรียกใช้เมธอด liveChatMessages.list ให้ตั้งค่าพารามิเตอร์ hl เป็นภาษาที่เลือกสำหรับข้อความ |
snippet.superStickerDetails.superStickerMetadata.language |
stringภาษาของค่าพร็อพเพอร์ตี้ snippet.superStickerDetails.superStickerMetadata.altText |
snippet.superStickerDetails.amountMicros |
unsigned longยอดรวมการซื้อในหน่วยไมโครของสกุลเงินที่ใช้ซื้อ เช่น หากยอดรวมการซื้อคือ 1 ดอลลาร์ ค่าพร็อพเพอร์ตี้ snippet.amountMicros จะเป็น 1000000 |
snippet.superStickerDetails.currency |
stringสกุลเงินที่ใช้ในการซื้อ ค่าคือรหัสสกุลเงิน ISO 4217 |
snippet.superStickerDetails.amountDisplayString |
stringสตริง เช่น $1.00 ที่มีจำนวนเงินที่ซื้อและสกุลเงิน สตริงนี้มีไว้เพื่อแสดงต่อผู้ใช้ |
snippet.superStickerDetails.tier |
unsigned integerระดับของข้อความแบบชำระเงิน โปรดทราบว่าในทรัพยากร superChatEvent พร็อพเพอร์ตี้ snippet.messageType จะมีค่านี้ระดับจะอิงตามจำนวนเงินที่ใช้จ่ายเพื่อซื้อข้อความ นอกจากนี้ ยังกำหนดสีที่ใช้ไฮไลต์ข้อความใน UI ของแชทสด ความยาวสูงสุดของข้อความ และระยะเวลาที่ข้อความจะปักหมุดไว้ในแถบแสดงข้อความ ระดับของ Super Chat ซึ่งครอบคลุม Super Stickers ด้วย มีระบุไว้ในศูนย์ช่วยเหลือของ YouTube (ดูส่วนที่ขยายได้เกี่ยวกับรายละเอียดการซื้อ Super Chat) ในรายการนั้น ระดับที่มีจำนวนการซื้อต่ำสุดคือระดับ 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รหัสของผู้ใช้ที่ซื้อการซื้อแพ็กเกจสมาชิกแบบของขวัญ ซึ่งจะตรงกับ snippet.authorChannelIdของข้อความการซื้อแพ็กเกจสมาชิกแบบของขวัญที่เกี่ยวข้อง |
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId |
stringรหัสของข้อความการซื้อแพ็กเกจสมาชิกแบบของขวัญที่เกี่ยวข้องกับแพ็กเกจสมาชิกแบบของขวัญนี้ รหัสนี้จะอ้างอิงถึงข้อความที่มี type เป็น membershipGiftingEvent เสมอ |
snippet.giftDetails |
objectออบเจ็กต์นี้มีรายละเอียดเกี่ยวกับกิจกรรมของขวัญ โดยจะแสดงเฉพาะในกรณีที่ message type เป็น giftEvent |
snippet.giftDetails.jewelsAmount |
integerจำนวนอัญมณีที่แลกเป็นของขวัญ |
snippet.giftDetails.giftName |
stringชื่อของขวัญ |
snippet.giftDetails.giftUrl |
stringURL ของเนื้อหาของขวัญ |
snippet.giftDetails.giftDuration |
objectระยะเวลาในการแสดง URL ของของขวัญ |
snippet.giftDetails.giftDuration.seconds |
integerจำนวนวินาทีที่จะแสดง URL ของของขวัญ |
snippet.giftDetails.giftDuration.nanos |
integerจำนวนนาโนวินาทีที่จะแสดง URL ของของขวัญ |
snippet.giftDetails.hasVisualEffect |
booleanของขวัญมีเอฟเฟกต์ภาพหรือไม่ |
snippet.giftDetails.comboCount |
integerจำนวนคอมโบของของขวัญ โดยจะเป็น 0 หากไม่ใช่คอมโบ |
snippet.giftDetails.altText |
stringสตริงข้อความที่อธิบายของขวัญ |
snippet.giftDetails.language |
stringภาษาของค่าพร็อพเพอร์ตี้ altText |
authorDetails |
objectออบเจ็กต์ authorDetails มีรายละเอียดเพิ่มเติมเกี่ยวกับผู้ใช้ที่โพสต์ข้อความนี้ |
authorDetails.channelId |
stringรหัสช่อง YouTube ของผู้เขียน |
authorDetails.channelUrl |
stringURL ของช่อง YouTube ของผู้เขียน |
authorDetails.displayName |
stringชื่อที่แสดงของช่อง YouTube ของผู้เขียน |
authorDetails.profileImageUrl |
stringURL อวาตาร์ของช่อง YouTube ของผู้เขียน |
authorDetails.isVerified |
booleanค่านี้จะระบุว่า YouTube ได้ยืนยันตัวตนของผู้เขียนหรือไม่ |
authorDetails.isChatOwner |
booleanค่านี้จะระบุว่าผู้เขียนเป็นเจ้าของแชทสดหรือไม่ |
authorDetails.isChatSponsor |
booleanค่านี้ระบุว่าผู้เขียนเป็นผู้สนับสนุนแชทสดหรือไม่ |
authorDetails.isChatModerator |
booleanค่านี้จะระบุว่าผู้เขียนเป็นผู้ดูแลแชทสดหรือไม่ |