یک منبع liveChatMessage نشاندهنده یک پیام چت در یک گفتگوی زنده یوتیوب است. این منبع میتواند شامل جزئیاتی در مورد انواع مختلف پیامها، از جمله یک پیام متنی تازه منتشر شده یا یک رویداد تأمین مالی طرفداران باشد.
قابلیت چت زنده به طور پیشفرض برای پخش زنده فعال است و تا زمانی که رویداد زنده فعال باشد، در دسترس است. (پس از پایان رویداد، چت زنده دیگر برای آن رویداد در دسترس نیست.)
روشها
این 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 | etagبرچسب E این منبع. |
id | stringشناسهای که یوتیوب برای شناسایی منحصر به فرد پیام اختصاص میدهد. |
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توجه: این شیء و ویژگیهای فرزند آن منسوخ شدهاند. از تاریخ ۲۸ فوریه ۲۰۱۷، منابع liveChatMessage دیگر جزئیات رویدادهای Fan Funding را برنمیگردانند.این شیء شامل جزئیاتی در مورد رویداد تأمین مالی است. این شیء فقط در صورتی وجود دارد که نوع پیام 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 خواهد بود.اگر پیامهای چت را پس از بازیابی، در حافظه پنهان (cache) ذخیره میکنید، از مقدار این ویژگی برای شناسایی پیامی که دیگر نباید نمایش داده شود، استفاده کنید. |
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این شیء حاوی جزئیاتی در مورد رویداد Member Milestone است. این شیء فقط در صورتی نمایش داده میشود که نوع پیام memberMilestoneChatEvent باشد. |
snippet.memberMilestoneChatDetails. userComment | stringنظری که توسط عضو به این گفتگوی ویژه اعضا اضافه شده است. این فیلد برای پیامهای بدون نظر از طرف عضو خالی است. |
snippet.memberMilestoneChatDetails. memberMonth | unsigned integerتعداد کل ماههایی (گرد شده به بالا) که بیننده عضو بوده و این گفتگوی ویژه اعضا را به او اعطا کرده است. این همان تعداد ماههایی است که برای کاربران یوتیوب نمایش داده میشود. |
snippet.memberMilestoneChatDetails. memberLevelName | stringنام سطحی که بیننده در آن عضو است. نام سطوح توسط کانال یوتیوبی که عضویت را ارائه میدهد تعریف میشود. در برخی شرایط، این فیلد پر نمیشود. |
snippet. newSponsorDetails | objectاین شیء حاوی جزئیاتی در مورد رویداد «اعلان عضو جدید» است. این جزئیات فقط در صورتی تنظیم میشوند که نوع آن newSponsorEvent باشد. «عضو» اصطلاحی برای «حامی» است. |
snippet.newSponsorDetails. memberLevelName | stringنام سطحی که بیننده در آن عضو است. نام سطوح توسط کانال یوتیوبی که عضویت را ارائه میدهد تعریف میشود. در برخی موارد، این فیلد پر نمیشود. |
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نظری که توسط کاربر به این رویداد سوپر چت اضافه شده است. |
snippet.superChatDetails. tier | unsigned integerردیف مربوط به پیام پرداخت شده. توجه داشته باشید که در یک منبع superChatEvent ، ویژگی snippet.messageType حاوی این مقدار است.این سطح بر اساس میزان هزینه صرف شده برای خرید پیام تعیین میشود. همچنین رنگی که برای برجسته کردن پیام در رابط کاربری چت زنده استفاده میشود، حداکثر طول پیام و مدت زمانی که پیام در تیکت پین میشود را تعیین میکند. سطوح سوپر چت در مرکز راهنمای یوتیوب مستند شدهاند. (به بخش قابل بسط در مورد جزئیات خرید سوپر چت مراجعه کنید.) در آن لیست، سطحی که کمترین مبلغ خرید را دارد، سطح ۱ است، سطح بعدی که کمترین مبلغ را دارد، سطح ۲ است و به همین ترتیب ادامه دارد. |
snippet. superStickerDetails | objectاین شیء حاوی جزئیاتی در مورد رویداد Super Sticker است. این جزئیات فقط در صورتی نمایش داده میشوند که نوع پیام superStickerEvent باشد. |
snippet.superStickerDetails. superStickerMetadata | objectجزئیات مربوط به سوپر استیکر. |
snippet.superStickerDetails.superStickerMetadata. stickerId | stringیک شناسه منحصر به فرد که تصویر استیکر را مشخص میکند. توجه داشته باشید که این تصویر فقط به عنوان بخشی از پیام سوپر استیکر هنگام مشاهده پنجره چت در یوتیوب نمایش داده میشود. با این حال، URL تصویر با استفاده از API در دسترس نیست. فقط برای مرجع، میتوانید شناسههای استیکر مربوط به سوپر استیکرها را در این فایل 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 حاوی این مقدار است.این سطح بر اساس میزان هزینه صرف شده برای خرید پیام تعیین میشود. همچنین رنگی که برای برجسته کردن پیام در رابط کاربری چت زنده استفاده میشود، حداکثر طول پیام و مدت زمانی که پیام در تیکت پین میشود را تعیین میکند. ردههای سوپر چت، که سوپر استیکرها را نیز پوشش میدهند، در مرکز راهنمای یوتیوب مستند شدهاند. (به بخش قابل بسط در مورد جزئیات خرید سوپر چت مراجعه کنید.) در آن لیست، ردهای که کمترین مبلغ خرید را دارد، رده ۱، کمترین مبلغ بعدی، رده ۲ و به همین ترتیب است. |
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نام سطح عضویتهای هدیه خریداری شده توسط کاربر. نام سطوح توسط کانال یوتیوب ارائه دهنده عضویت تعریف میشود. در برخی شرایط، این فیلد پر نمیشود. |
snippet. giftMembershipReceivedDetails | objectاین شیء حاوی جزئیاتی درباره رویداد Gift Membership Received است. این رویداد فقط در صورتی نمایش داده میشود که message type giftMembershipReceivedEvent باشد. |
snippet.giftMembershipReceivedDetails. memberLevelName | stringنام سطحی که بیننده در آن عضو است. این با snippet.membershipGiftingDetails.giftMembershipsLevelName پیام اهدای عضویت مرتبط مطابقت دارد. نام سطوح توسط کانال یوتیوبی که عضویت را ارائه میدهد تعریف میشود. در برخی شرایط، این فیلد پر نمیشود. |
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این مقدار نشان میدهد که آیا هویت نویسنده توسط یوتیوب تأیید شده است یا خیر. |
authorDetails. isChatOwner | booleanاین مقدار نشان میدهد که آیا نویسنده، مالک چت زنده است یا خیر. |
authorDetails. isChatSponsor | booleanاین مقدار نشان میدهد که آیا نویسنده، حامی مالی گفتگوی زنده است یا خیر. |
authorDetails. isChatModerator | booleanاین مقدار نشان میدهد که آیا نویسنده، مدیر چت زنده است یا خیر. |