LiveChatMessages

يمثّل المرجع liveChatMessage رسالة محادثة ضمن محادثة مباشرة على YouTube. يمكن أن يتضمّن المرجع تفاصيل حول أنواع متعدّدة من الرسائل، بما في ذلك رسالة نصية منشورة حديثًا أو حدث تمويل من المعجبين.

تكون ميزة المحادثة المباشرة مفعَّلة تلقائيًا لأحداث البث المباشر وتتوفّر عندما يكون الحدث المباشر نشطًا. (بعد انتهاء الحدث، لن تبقى المحادثة المباشرة متوفّرة لذلك الحدث).

الطُرق

تتيح واجهة برمجة التطبيقات استخدام الطرق التالية لموارد liveChatMessages:

list
عرض رسائل المحادثة المباشرة الخاصة بمحادثة محدّدة التجربة الآن
إدراج
لإضافة رسالة إلى محادثة مباشرة. التجربة الآن
حذف
حذف رسالة محادثة يجب أن يكون طلب البيانات من واجهة برمجة التطبيقات معتمَدًا من مالك القناة أو المشرف على المحادثة المباشرة. التجربة الآن

تمثيل الموارد

تعرض بنية 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
    },
    "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
يحدّد نوع مورد واجهة برمجة التطبيقات. ستكون القيمة youtube#liveChatMessage.
etag etag
علامة هذا المرجع.
id string
المعرّف الذي يعيّنه YouTube لتحديد الرسالة بشكل فريد.
snippet object
يحتوي العنصر snippet على تفاصيل أساسية حول رسالة المحادثة.
snippet.type string
نوع الرسالة هذه السمة متوفّرة دائمًا، وتحدّد قيمتها الحقول المتوفّرة في المورد.

في ما يلي القيم الصالحة لهذه السمة:
  • chatEndedEvent – انتهت المحادثة ولا يمكن إدراج المزيد من الرسائل بعد هذه المحادثة. سيحدث هذا بشكل طبيعي بعد وقت قصير من انتهاء البث. لا يتم إرسال هذا النوع من الرسائل في المحادثات المباشرة على البث التلقائي للقناة.
  • messageDeletedEvent – حذَف المشرف رسالة. يحتوي الحقل author على تفاصيل المشرف. لا يتضمّن هذا الحدث أي محتوى معروض.
  • sponsorOnlyModeEndedEvent – لم تعُد المحادثة في وضع الجهات الراعية فقط، ما يعني أنّه بإمكان المستخدمين غير الجهات الراعية إرسال الرسائل الآن. لا يتضمّن هذا الحدث أي محتوى معروض.
  • sponsorOnlyModeStartedEvent – تمّ الدخول في وضع الدردشة للجهات الراعية فقط، ما يعني أنّ الجهات الراعية فقط هي القادرة على إرسال الرسائل. لا يتضمّن هذا الحدث أي محتوى معروض.
  • newSponsorEvent – يقدّم مستخدم جديد الرعاية للقناة التي تملك المحادثة المباشرة. تحتوي حقول author على تفاصيل الجهة الراعية الجديدة.
  • memberMilestoneChatEvent – أرسل مستخدم رسالة محادثة مميّزة خاصة بالأعضاء.
  • superChatEvent – اشترى أحد المستخدمين رسالة Super Chat
  • superStickerEvent: اشترى أحد المستخدمين Super Sticker
  • textMessageEvent – أرسل مستخدم رسالة نصية.
  • tombstone – يشير علامة tombstone إلى أنّ الرسالة كانت متوفّرة بهذا المعرّف ووقت النشر، ولكن تم حذفها منذ ذلك الحين. ولا يتم إرساله عند حذف رسالة، ولكن يظهر للإشارة إلى مكان الرسالة قبل الحذف. لا يتوفّر سوى الحقول snippet.liveChatId وsnippet.type وsnippet.publishedAt في هذا النوع من الرسائل.
  • userBannedEvent – تم حظر مستخدم من قِبل المشرف. يحتوي الحقل author على تفاصيل المشرف.
  • membershipGiftingEvent – اشترى أحد المستخدمين عضويات تابعة لمشاهدين آخرين.
  • giftMembershipReceivedEvent – تلقّى أحد المستخدمين عضوية مقدَّمة كهدية.
snippet.liveChatId string
المعرّف الذي يعرّف بشكل فريد المحادثة المباشرة المرتبطة بالرسالة يتم عرض معرّف المحادثة المباشرة المرتبط بالبث في السمة snippet.liveChatId لمورد liveBroadcast.
snippet.authorChannelId string
رقم تعريف المستخدم الذي ألّف الرسالة يتم ملء هذا الحقل لأنواع الرسائل التالية فقط:
  • إذا كان نوع الرسالة هو textMessageEvent، تحدِّد قيمة السمة المستخدم الذي كتب الرسالة.
  • إذا كان نوع الرسالة هو fanFundingEvent، تحدد قيمة الخاصية المستخدم الذي موّل البث.
  • إذا كان نوع الرسالة هو messageDeletedEvent، ستحدِّد قيمة السمة المشرف الذي حذف الرسالة.
  • إذا كان نوع الرسالة هو newSponsorEvent، تحدّد قيمة السمة المستخدم الذي أصبح للتو جهة راعية.
  • إذا كان نوع الرسالة memberMilestoneChatEvent، تحدد قيمة السمة العضو الذي أرسل الرسالة.
  • إذا كان نوع الرسالة هو userBannedEvent، ستحدِّد قيمة السمة المشرف الذي حظر المستخدم.
  • إذا كان نوع الرسالة هو membershipGiftingEvent، تحدِّد قيمة السمة المستخدم الذي أجرى عملية شراء إهداء عضوية.
  • إذا كان نوع الرسالة هو giftMembershipReceivedEvent، تحدِّد قيمة السمة المستخدم الذي حصل على العضوية المقدَّمة كهدية.
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 هي 123، تم حذف هذه الرسالة لاحقًا، ستصبح قيمة snippet.messageDeletedDetails.deletedMessageId هي 123 لتلك الرسالة.

إذا احتفظت برسائل المحادثة في ذاكرة التخزين المؤقت بعد استردادها، استخدِم قيمة هذه السمة لتحديد الرسالة التي يجب ألا يتم عرضها بعد ذلك.id
snippet.userBannedDetails object
يحتوي هذا العنصر على تفاصيل حول مستخدم تم حظره من المحادثة. وتحتوي أيضًا على تفاصيل عن الحظر نفسه. يمكن حظر المستخدمين من المحادثة نهائيًا أو مؤقتًا.
snippet.userBannedDetails.bannedUserDetails object
يحتوي هذا العنصر على معلومات حول المستخدم المحظور.
snippet.userBannedDetails.bannedUserDetails.channelId string
معرّف قناة المستخدم المحظور على YouTube
snippet.userBannedDetails.bannedUserDetails.channelUrl string
عنوان URL لقناة المستخدم المحظور على 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
مبلغ الشراء بالمايكرو من عملة الشراء على سبيل المثال، إذا كان مبلغ الشراء هو دولار أمريكي واحد، تكون قيمة السمة 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 التي تتضمّن أقل مبلغ شراء هي الفئة 1، وأدنى مبلغ تالٍ هو الفئة 2، وهكذا.
snippet.superStickerDetails object
يحتوي هذا العنصر على تفاصيل حول حدث Super Stickers. ولا تتوفّر هذه الميزة إلا إذا كان نوع الرسالة هو superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
تفاصيل حول Super Sticker
snippet.superStickerDetails.superStickerMetadata.stickerId string
معرّف فريد يحدّد صورة الملصق يُرجى العِلم أنّ الصورة تظهر فقط كجزء من رسالة Super Stickers عندما يرى المستخدمون نافذة المحادثة على YouTube. يُرجى العِلم أنّ عنوان URL للصورة غير متاح باستخدام واجهة برمجة التطبيقات. كمرجع فقط، يمكنك معرفة أرقام تعريف الملصقات ذات الصلة بميزة 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
مبلغ الشراء بالمايكرو من عملة الشراء على سبيل المثال، إذا كان مبلغ الشراء هو دولار أمريكي واحد، تكون قيمة السمة 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 التي تشمل أيضًا "الملصقات العجيبة" في مركز مساعدة YouTube. (يمكنك الاطّلاع على القسم القابل للتوسيع حول تفاصيل شراء رسائل Super Chat). في هذه القائمة، الفئة 1 التي تتضمّن أقل مبلغ شراء هي الفئة 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.questionText string
نص سؤال الاستطلاع المباشر.
snippet.pollDetails.metadata.status enum
حالة حدث الاستطلاع المباشر في ما يلي القيم الصالحة لهذه السمة:
  • unknown
  • active
  • closed
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 string
تشير هذه السمة إلى عنوان URL لقناة المؤلف على YouTube.
authorDetails.displayName string
الاسم المعروض لقناة المؤلف على YouTube
authorDetails.profileImageUrl string
عنوان URL للصورة الرمزية لقناة المؤلف على YouTube
authorDetails.isVerified boolean
تشير هذه القيمة إلى ما إذا تحقّقت منصة YouTube من هوية المؤلف.
authorDetails.isChatOwner boolean
تحدّد هذه القيمة ما إذا كان مؤلف المحادثة المباشرة هو مالك المحادثة المباشرة.
authorDetails.isChatSponsor boolean
تشير هذه القيمة إلى ما إذا كان المؤلف جهة راعية للمحادثة المباشرة.
authorDetails.isChatModerator boolean
تشير هذه القيمة إلى ما إذا كان المؤلف مشرفًا على المحادثة المباشرة.