ویرگول
ورودثبت نام
Mohsen
Mohsen
خواندن ۲ دقیقه·۷ سال پیش

چطور یک ربات تلگرامی برای جوین اجباری به کانال بنویسیم؟

با نمونه های زیاد رباتهای جوین اجباری به احتمال فراوان برخورد داشتید. نمونه معروفش ربات ملوبات که یه ربات جستجوی جدیدترین آهنگاست و برای دسترسی به آهنگای کیفیت 320 از شما میخواد تا توی کانالی که لینکشو میفرسته عضو بشید و بعد از عضویت فایل با کیفیت 320 موسیقی مورد نظر رو ارسال میکنه. به همین شکل و تکنیک تا این لحظه که من چک کردم کانالش بالای 2.5 میلیون یوزر گرفته که عمده اون از همین طریق بوده!

نمیدونم موضوع از نظر شما اخلاقی باشه یا نه، اینکه کاربرها رو برای دریافت یه سرویس مجبور به انجام کاری بکنیم که در حالت عادی راغب به اون نیست، اما به هر حال روشی هست که کار میکنه و میتونین یوزرای زیادی رو به کانالاتون بکشونین؛ البته به شرطی که خدمتی که ارائه میدین مفید باشه واقعا و کاربر حاضر باشه این جبر رو تحمل کنه.

برای دوستانی که این آموزش رو میبینند و با نوشته های من تازه آشنا شدند، سری آموزشهای تلگرام از اینجا شروع میشه که میتونید پیگیری کنید و با هر آموزش یه آپشن جدید به رباتتون اضافه کنید تا برسید به آموزش فعلی.
https://t.me/howCreateBot
https://t.me/howCreateBot

تشخیص عضو بودن کاربرها در یک کانال خاص

برای جوین اجباری، اول باید چک کنیم ببینیم که کاربری که داره با ربات تعامل میکنه عضو کانال مورد نظرمون هست یا نه. برای این کار اول ربات رو به اون کانال اضافه کنید (add member) و اگه کانال اعضاش بالاست و اجازه نمیده باید از طریق قسمت ادمین به عنوان ادمین اضافه کنید و با توجه به کارهایی که قرار هست براتون انجام بده بهش دسترسی بدید و بعد دستورات زیر رو اجرا کنید:

$content = array('chat_id' => '@howCreateBot', 'user_id' => $user_id);
$join_info = $telegram->getChatMember($content);

کدهای بالا اگه درست کار کنه یه آرایه برمیگردونه که خونه اولش اسمش ok هست. اگه این خونه مقدار TRUE باشه یعنی کد درست اجرا شده و باید بقیه موارد رو چک کرد و اگه فالس بود کدمون رو باید تصحیح کنیم چون ایراد داره.

به جز OK یه خونه دیگه که خودش از نوع آرایه هستو کد بالا برمیگردونه به نام result که شامل اطلاعات کاربر هستش. اطلاعاتی مثل نام کاربری، چت آیدی، نام و از همه مهمتر وضعیت عضویتش توی کانال مورد نظر شما که اسم اون خونه status هستش و شرطهایی که ما تعیین میکنیم بر اساس این خونه از آرایه userه.

پس توی کد بالا مقدار چت آیدی همونطور که میبینید کانالی باید نوشته بشه که میخوایم این موضوع رو چک کنیم. و بعد هم متد getChatMember رو صدا بزنیم.

حالا خطوط کد شرط رو تعیین میکنیم و در صورتی که فرد عضو کانال نباشه براش لینک عضویت رو میفرستم و بهش توضیح میدیم که باید حتما عضو فلان کانال باشه.

$join_check = $join_info['ok'];
$join_status = $join_info['result']['status']; // member - left
if(!$join_check || $join_status == 'left'){
$content = array('chat_id' => $chat_id, 'text' => 'You Should Subscribe to Our channel first!'.PHP_EOL.'https://t.me/howCreateBot');
$telegram->sendMessage($content);
}

امیدوارم خوشتون اومده باشه و سوالی داشتید همینجا بپرسید. اگه آموزش خاصی هم مد نظرتونه کامنت بگذارید.

نکته پایانی: من این تکنیک جوین رو برای گروهها و یا سوپرگروهها تا الان چک نکردم، ولی فکر میکنم امکانپذیر هستش که برا گروههای تلگرامی هم این انجام بشه. خودتون امتحان کنید حتما.

مثل همیشه سورس کد کامل رو میذارم توی کانال.


جوین اجباریربات جوین اجباریforce jointelegram bot api
یه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
شاید از این پست‌ها خوشتان بیاید