یکی از قابلیتهای عالی ربات نویسی تلگرام نمایش یک اکشن (action) قبل از انجام و اتمام عملیاتی هست که ربات داره انجام میده. مثلا ربات در حال ارسال یک فایل ویدئویی با حجم 50 مگابایت برای کاربر هستش و این ممکنه 5 ثانیه طول بکشه؛ حرفه ای تر اینه که همزمان با ارسال متن "لطفا منتظر بمانید" یک اکشن هم به کاربر نشون بدید که متوجه بشه درخواستش در حال پردازشه و بهش بی محلی نشده و چیزی که میخواسته رو بزودی تحویل میگیره.
از نمونه اکشنهایی که تو تلگرام زیاد دیدینش نوشته ی typing... توی زمانهایی هستش که طرف مقابلتون در حال نوشتن جواب برای شماست. برای انجام همچین کاری توی ربات تلگرام کافیه قبل از انجام دستورها متد sendChatAction رو با مقادیری که در ادامه توضیح میدم صدا بزنید.
به نمونه کد زیر توجه کنید:
if($text=='hi'){
$content = ['chat_id' =>$chat_id, 'action' => 'typing'];
$telegram->sendChatAction($content);
$content = ['chat_id' =>$chat_id, 'text' => 'hey there...'];
$telegram->sendMessage($content);
}
توی کد بالا من یک شرط تعریف کردم که اگه کاربر متن hi رو ارسال کرد بالای صفحه چت و قبل از اینکه متن hey there... به عنوان جواب براش برگرده اکشن typing... رو نشون بده تا کاربر متوجه بشه ربات در حال پاسخگویی به متنی هست که فرستاده.
پس قطع متوجه شدید که متد sendChatAction تنها به دو پارامتر chat_id و action نیاز داره؛ چت ایدی رو توی آموزشهای قبلی آموزش دادم که چطوری بدست میاد و پارامتر action هم بر اساس لیست زیر میتونید تنظیم کنید.
امیدوارم خوشتون اومده باشه
کانال تلگرامی: @howCreateBot
لینک شروع آموزشها:
https://virgool.io/@mohsen322/writing-telegram-php-bot-with-10-lines-fbmxxrd8sjqq