liveChatMessage ทรัพยากรแสดงถึงข้อความแชทในแชทสดของ YouTube แหล่งข้อมูลนี้อาจมีรายละเอียดเกี่ยวกับข้อความหลายประเภท รวมถึงข้อความที่เพิ่งโพสต์หรือกิจกรรมการให้เงินสนับสนุนของแฟนๆ
ฟีเจอร์แชทสดจะเปิดใช้โดยค่าเริ่มต้นสำหรับการถ่ายทอดสดและจะพร้อมใช้งานในขณะที่กิจกรรมสดกำลังดำเนินอยู่ (หลังจากกิจกรรมสิ้นสุดลง แชทสดสำหรับกิจกรรมนั้นจะใช้งานไม่ได้อีกต่อไป)
เมธอด
API รองรับวิธีการต่อไปนี้สำหรับทรัพยากร liveChatMessages
- list
- แสดงข้อความแชทสดของแชทที่เฉพาะเจาะจง ลองใช้เลย
- streamList
- เปิดใช้การเชื่อมต่อการสตรีมจากเซิร์ฟเวอร์เพื่อรับข้อความแชทสดสำหรับแชทที่เฉพาะเจาะจงโดยมีความหน่วงต่ำ ลองใช้เลย
- แทรก
- เพิ่มข้อความหรือแบบสำรวจไปยังแชทสด ลองใช้เลย
- การเปลี่ยนภาพ
- เปลี่ยนสถานะของข้อความที่ใช้แสดงอยู่ ลองใช้เลย
- ลบ
- ลบข้อความแชท คำขอ 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
    },
    "messageDeletedDetails": {
      "deletedMessageId": 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
    },
  },
  "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 กำหนดเพื่อระบุข้อความที่ไม่ซ้ำกัน | 
| 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.messageDeletedDetails | objectออบเจ็กต์นี้มีรายละเอียดเกี่ยวกับข้อความที่ผู้ดูแลแชทหรือเจ้าของช่องของการถ่ายทอดสดลบ โดยจะปรากฏขึ้นเมื่อประเภทข้อความเป็น messageDeletedEventเท่านั้น | 
| snippet.messageDeletedDetails.deletedMessageId | stringรหัสที่ระบุข้อความที่ลบแล้วโดยไม่ซ้ำกัน ค่าจะเหมือนกับค่าพร็อพเพอร์ตี้ idของข้อความต้นฉบับ เช่น หากtextMessageEventมีค่าพร็อพเพอร์ตี้idเป็น123และต่อมามีการลบข้อความดังกล่าว ค่าsnippet.messageDeletedDetails.deletedMessageIdจะเป็น123สำหรับข้อความนั้นหากแคชข้อความแชทหลังจากดึงข้อมูลมาแล้ว ให้ใช้ค่าของพร็อพเพอร์ตี้นี้เพื่อระบุข้อความที่ไม่ควรแสดงอีกต่อไป | 
| 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 Stickers เท่านั้นเมื่อผู้ใช้ดูหน้าต่างแชทบน 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เสมอ | 
| 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ค่านี้ระบุว่าผู้เขียนเป็นผู้ดูแลแชทสดหรือไม่ |