اگر پیگیر بروزرسانی های تلگرام باشید، حتما متوجه شدید که توی آپدیت جدید این نرم افزار محبوب (حداقل میون ما ایرانی ها) یک مدل جدید ارسال نظرسنجی اضافه شده به اسم کوئیز (QUIZ - پرسشهای چندجوابی).
توی آموزش امروز یاد میگیرید که چطوری از طریق رباتها و با استفاده از API رسمی تلگرام، نظرسنجی یا کوئیز بسازید و برای کاربرهای رباتتون ارسال کنید. (توی آموزشهای آینده هم نحوه دریافت جوابها رو آموزش میدم)
مثل همیشه اگر تازه با من و آموزشهام آشنا شدید و طرفدار آموزشهای ویدئویی هستین، بهترین کار اینه که بیاین توی کانالم و از اول همه آموزشها رو ببینید تا راه بیفتید و با سیک و سیاق کار و نحوه فراخوانی متودها و استفاده از API آشنا بشید، اگر هم طرفدار مدل آموزشی متنی هستید، همه آموزشها، اول اینجا نوشته میشن و بعد ویدئوییش ساخته میشه. شروع آموزشها اینجاست.
اگر هم همراه و کاربر بلاگید و آشنا، که عالی هستش و این آموزش هم مثل بقیه آموزشهاست!
برای ارسال انواع نظرسنجی ما از متود sendPoll استفاده میکنیم. این متود شامل پارمترهای مختلفی هستش که تک تک بررسیشون میکنیم.
اول از همه به نمونه کد پایین توجه کنید که یه سوال با عنوان This is a test Question و سه تا گزینه با عناوین Option 1. Option 2 , Option 3 ارسال میکنه.
$options = json_encode(['Option 1', 'Option 2', 'Option 3']);
$content = ['chat_id' => $chat_id, 'question' => 'This is a Test Question', 'options' => $options, 'allows_multiple_answers' => 'true' ];
$telegram->sendPoll($content);
کدها مثل همیشه واضحن؛ توی آرایه $content موارد مورد نیاز متود sendPoll ریخته میشه. پارامتر اول chat_id یا همون آیدی محیطی هستش که ربات باید نظرسنجی رو اونجا بفرسته، میتونه آیدی یک گروه یا سوپرگروه باشه، یک کانال و یا خود محیط ربات.
پارامتر question یک رشته میگیره که همون سوال مورد نظرمونه.
پارامتر options هم یک آرایه به شکل کد شده ی جیسون (json_encode) و از نوع رشته ای بهش میگیره که همون گزینه هامون هستش و در آخر هم متودمون رو صدا زدیم.
این شکل ساده ارسال نظرسنجی بود.
حالا همونجور که میبینید یه پارامتر دیگه من دارم به اسم allows_multiple_answers که مشخصه کارش اینه که اجازه بده کاربرها با جای یک گزینه چندتا گزینه رو انتخاب کنن توی نظر سنجی. نتیجه کدهای بالا تصویر زیر هستش.
خیلی وقتها نیاز هست که نظرسنجی به شکل پرسش و پاسخ مطرح بشه؛ مثل سوالات چهار جوابی، برای این حالت کافیه آرایه $content در کدهای بالا به شکل زیر مقدار دهی بشه:
$content = ['chat_id' => $chat_id, 'question' => 'This is a Test Question', 'type' => 'quiz', 'options' => $options, 'correct_option_id' => 2 ];
توی مورد دوم و ارسال نظر سنجی به شکل Quiz، دوتا پارامتر اضافه میشن:
پارامتر type که باید مقدارش quiz باشه و پارامتر correct_option_id که آیدی پاسخ صحیح از این طریق به تلگرام معرفی میشه.
دقت کنید که آیدی پاسخ صحیح مکان اندیس پاسخ توی آرایه $options هستش و از شماره 0 شروع میشه.
در واقع اگر شما به فرض سه جواب داشته باشید و مقدار correct_option_id رو 1 قرار بدید، انگار به تلگرام میگید که پاسخ صحیح، گزینه دوم در آرایه $options هستش. نتیجه پارامترهای بالا شکل پایین میشه.
نکته های پایانی:
متود sendPoll دوتا پارامتر دیگه داره به اسمهای is_anonymous و is_closed.
پارامتر is_anonymous اگر false مقداردهی بشه و توی آرایه $content قرارش بدیم، آیدی افراد رای دهنده رو نشون میده توی نظرسنجی و پارامتر is_closed باعث بسته شدن نظرسنجی میشه.
موفق باشید.