یک منبع liveChatMessage یک پیام چت را در یک چت زنده YouTube نشان می دهد. این منبع میتواند حاوی جزئیاتی درباره چندین نوع پیام باشد، از جمله یک پیام متنی جدید ارسال شده یا رویداد حمایت مالی از طرفداران.
ویژگی چت زنده به طور پیش فرض برای پخش زنده فعال است و در زمانی که رویداد زنده فعال است در دسترس است. (بعد از پایان رویداد، چت زنده دیگر برای آن رویداد در دسترس نیست.)
روش ها
API از روش های زیر برای منابع liveChatMessages پشتیبانی می کند:
- list
- پیامهای چت زنده را برای یک چت خاص فهرست میکند. اکنون آن را امتحان کنید .
- streamList
- اتصال پخش جریانی سرور را برای دریافت پیامهای چت زنده برای یک گپ خاص با تأخیر کم فعال میکند. اکنون آن را امتحان کنید .
- insert
- پیام یا نظرسنجی را به چت زنده اضافه می کند. اکنون آن را امتحان کنید .
- transition
- وضعیت یک پیام زنده را انتقال می دهد. اکنون آن را امتحان کنید .
- delete
- پیام چت را حذف می کند. درخواست 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شناسه کانال یوتیوب کاربر ممنوعه. |
snippet.userBannedDetails.bannedUserDetails. channelUrl | stringآدرس کانال یوتیوب کاربر ممنوعه. |
snippet.userBannedDetails.bannedUserDetails. displayName | stringنام نمایشی کانال یوتیوب کاربر ممنوعه. |
snippet.userBannedDetails.bannedUserDetails. profileImageUrl | stringآواتار کانال یوتیوب کاربر ممنوعه. |
snippet.userBannedDetails. banType | stringنوع ممنوعیت. مقادیر معتبر برای این ویژگی عبارتند از:
|
snippet.userBannedDetails. banDurationSeconds | unsigned longمدت زمان ممنوعیت. این ویژگی فقط در صورتی وجود دارد که مقدار ویژگی snippet.userBannedDetails.banType temporary باشد. |
snippet. memberMilestoneChatDetails | objectاین شی حاوی جزئیاتی درباره رویداد Milestone عضو است. فقط در صورتی وجود دارد که نوع پیام memberMilestoneChatEvent باشد. |
snippet.memberMilestoneChatDetails. userComment | stringنظر اضافه شده توسط عضو به این عضو Milestone Chat. این فیلد برای پیامهای بدون نظر عضو خالی است. |
snippet.memberMilestoneChatDetails. memberMonth | unsigned integerمجموع ماهها (گردششده) بیننده عضوی بوده است که این چت Milestone را به آنها اعطا کرده است. این همان تعداد ماه هایی است که به کاربران 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مبلغ خرید، بر حسب میکرو ارز خرید. به عنوان مثال، اگر مبلغ خرید یک دلار باشد، ارزش دارایی 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 حاوی این مقدار است.این ردیف بر اساس مقدار پولی است که برای خرید پیام صرف شده است. همچنین رنگ مورد استفاده برای برجسته کردن پیام در رابط کاربری چت زنده، حداکثر طول پیام، و مدت زمانی که پیام پین میشود را تعیین میکند. سطوح Super Chat در مرکز راهنمای YouTube مستند شده است. (به بخش قابل ارتقا درباره جزئیات خرید Super Chat مراجعه کنید.) در آن لیست، ردیفی که کمترین مقدار خرید را دارد، ردیف 1، کمترین مقدار بعدی، ردیف 2 و غیره است. |
snippet. superStickerDetails | objectاین شی حاوی جزئیاتی درباره یک رویداد Super Sticker است. فقط در صورتی وجود دارد که نوع پیام superStickerEvent باشد. |
snippet.superStickerDetails. superStickerMetadata | objectجزئیات در مورد Super Sticker. |
snippet.superStickerDetails.superStickerMetadata. stickerId | stringیک شناسه منحصر به فرد که تصویر برچسب را مشخص می کند. توجه داشته باشید که زمانی که کاربران پنجره چت را در یوتیوب مشاهده می کنند، تصویر تنها به عنوان بخشی از پیام Super Sticker نمایش داده می شود. با این حال، URL تصویر با استفاده از API در دسترس نیست. فقط برای مرجع، میتوانید شناسههای برچسب مربوط به کدام Super Sticker را در این فایل 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مبلغ خرید، بر حسب میکرو ارز خرید. به عنوان مثال، اگر مبلغ خرید یک دلار باشد، ارزش دارایی snippet.amountMicros 1000000 است. |
snippet.superStickerDetails. currency | stringارزی که خرید با آن انجام شده است. مقدار یک کد ارز ISO 4217 است. |
snippet.superStickerDetails. amountDisplayString | stringرشته ای مانند $1.00 که حاوی مقدار خرید و ارز است. رشته برای نمایش به کاربر در نظر گرفته شده است. |
snippet.superStickerDetails. tier | unsigned integerردیف برای پیام پولی. توجه داشته باشید که در یک منبع superChatEvent ، ویژگی snippet.messageType حاوی این مقدار است.این ردیف بر اساس مقدار پولی است که برای خرید پیام صرف شده است. همچنین رنگ مورد استفاده برای برجسته کردن پیام در رابط کاربری چت زنده، حداکثر طول پیام، و مدت زمانی که پیام پین میشود را تعیین میکند. سطوح 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شناسه کانال یوتیوب نویسنده. |
authorDetails. channelUrl | stringآدرس کانال یوتیوب نویسنده. |
authorDetails. displayName | stringنام نمایشی کانال یوتیوب نویسنده. |
authorDetails. profileImageUrl | stringآدرس آواتار کانال یوتیوب نویسنده. |
authorDetails. isVerified | booleanاین مقدار نشان می دهد که آیا هویت نویسنده توسط YouTube تأیید شده است یا خیر. |
authorDetails. isChatOwner | booleanاین مقدار نشان می دهد که آیا نویسنده مالک چت زنده است یا خیر. |
authorDetails. isChatSponsor | booleanاین مقدار نشان می دهد که آیا نویسنده حامی چت زنده است یا خیر. |
authorDetails. isChatModerator | booleanاین مقدار نشان می دهد که آیا نویسنده ناظر چت زنده است یا خیر. |