একটি 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 | stringAPI সম্পদের ধরন সনাক্ত করে। মান হবে youtube#liveChatMessage । |
etag | etagএই সম্পদের Etag. |
id | stringবার্তাটিকে স্বতন্ত্রভাবে শনাক্ত করার জন্য YouTube যে আইডি বরাদ্দ করে। |
snippet | objectsnippet অবজেক্টে চ্যাট বার্তা সম্পর্কে মূল বিবরণ রয়েছে। |
snippet. type | stringবার্তার ধরন। এই বৈশিষ্ট্যটি সর্বদা উপস্থিত থাকে এবং এর মান নির্ধারণ করে যে কোন ক্ষেত্রগুলি সংস্থানে উপস্থিত রয়েছে। এই সম্পত্তির জন্য বৈধ মান হল:
|
snippet. liveChatId | stringআইডি যেটি অনন্যভাবে লাইভ চ্যাটটিকে সনাক্ত করে যার সাথে বার্তাটি যুক্ত। একটি সম্প্রচারের সাথে যুক্ত লাইভ চ্যাট আইডি liveBroadcast রিসোর্সের snippet.liveChatId প্রপার্টিতে ফেরত দেওয়া হয়। |
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নিষিদ্ধ ব্যবহারকারীর YouTube চ্যানেলের URL। |
snippet.userBannedDetails.bannedUserDetails. displayName | stringনিষিদ্ধ ব্যবহারকারীর YouTube চ্যানেলের প্রদর্শনের নাম। |
snippet.userBannedDetails.bannedUserDetails. profileImageUrl | stringনিষিদ্ধ ব্যবহারকারীর ইউটিউব চ্যানেলের অবতার। |
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এই অবজেক্টে একটি সুপার চ্যাট ইভেন্টের বিবরণ রয়েছে। এটি শুধুমাত্র উপস্থিত থাকে যদি বার্তার ধরন 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 প্রপার্টিতে এই মানটি থাকে।বার্তাটি কেনার জন্য যে পরিমাণ অর্থ ব্যয় করা হয়েছে তার উপর ভিত্তি করে স্তরটি। এটি লাইভ চ্যাট UI-তে বার্তাটি হাইলাইট করতে ব্যবহৃত রঙ, সর্বাধিক বার্তার দৈর্ঘ্য এবং বার্তাটি টিকারের সাথে পিন করার সময় নির্ধারণ করে। সুপার চ্যাটের স্তরগুলি YouTube সহায়তা কেন্দ্রে নথিভুক্ত করা হয়েছে৷ (সুপার চ্যাট কেনাকাটার বিশদ বিবরণ সম্বন্ধে প্রসারণযোগ্য বিভাগটি দেখুন।) সেই তালিকায়, সর্বনিম্ন ক্রয়ের পরিমাণের স্তরটি হল স্তর 1, পরবর্তী সর্বনিম্ন পরিমাণ হল স্তর 2 এবং আরও অনেক কিছু৷ |
snippet. superStickerDetails | objectএই বস্তুটিতে একটি সুপার স্টিকার ইভেন্টের বিবরণ রয়েছে। এটি শুধুমাত্র উপস্থিত থাকে যদি বার্তার ধরন 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 | stringsnippet.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 প্রপার্টিতে এই মানটি থাকে।বার্তাটি কেনার জন্য যে পরিমাণ অর্থ ব্যয় করা হয়েছে তার উপর ভিত্তি করে স্তরটি। এটি লাইভ চ্যাট UI-তে বার্তাটি হাইলাইট করতে ব্যবহৃত রঙ, সর্বাধিক বার্তার দৈর্ঘ্য এবং বার্তাটি টিকারের সাথে পিন করার সময় নির্ধারণ করে। সুপার চ্যাটের স্তরগুলি, যা সুপার স্টিকারগুলিকেও কভার করে, YouTube সহায়তা কেন্দ্রে নথিভুক্ত করা হয়েছে৷ (সুপার চ্যাট কেনাকাটার বিশদ বিবরণ সম্বন্ধে প্রসারণযোগ্য বিভাগটি দেখুন।) সেই তালিকায়, সর্বনিম্ন ক্রয়ের পরিমাণের স্তরটি হল স্তর 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লাইভ পোল বিকল্পের ট্যালি। এপিআই অনুরোধ চ্যানেল মালিক কর্তৃক অনুমোদিত হলেই ট্যালিটি উপস্থিত থাকে। |
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 | objectauthorDetails অবজেক্টে এই বার্তাটি পোস্ট করা ব্যবহারকারী সম্পর্কে অতিরিক্ত বিবরণ রয়েছে। |
authorDetails. channelId | stringলেখকের ইউটিউব চ্যানেল আইডি। |
authorDetails. channelUrl | stringলেখকের ইউটিউব চ্যানেলের URL। |
authorDetails. displayName | stringলেখকের YouTube চ্যানেলের প্রদর্শনের নাম। |
authorDetails. profileImageUrl | stringলেখকের YouTube চ্যানেলের অবতার URL। |
authorDetails. isVerified | booleanএই মানটি নির্দেশ করে যে লেখকের পরিচয় YouTube দ্বারা যাচাই করা হয়েছে কিনা। |
authorDetails. isChatOwner | booleanএই মানটি নির্দেশ করে যে লেখক লাইভ চ্যাটের মালিক কিনা। |
authorDetails. isChatSponsor | booleanএই মানটি নির্দেশ করে যে লেখক লাইভ চ্যাটের স্পনসর কিনা। |
authorDetails. isChatModerator | booleanএই মান নির্দেশ করে যে লেখক লাইভ চ্যাটের একজন মডারেটর কিনা। |