نحوه استفاده از sendChatAction در ربات‌نویسی تلگرام

یکی از قابلیتهای عالی ربات نویسی تلگرام نمایش یک اکشن (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 هم بر اساس لیست زیر میتونید تنظیم کنید.

  • کلیدواژه typing برای زمانی که ربات میخواد یک متن رو برگردونه به عنوان پاسخ (قبل از استفاده از متد sendMessage )
  • کلیدواژه upload_photo هنگام استفاده از از متد sendPhoto و کار با تصاویر
  • کلیدواژه های record_video و upload_video هنگام استفاده از از متدهای کار با ویدئو مثل sendVideo
  • کلیدواژه های record_audio و upload_audio هنگام استفاده از از متدهای کار با فایلهای صوتی و موسیقی مثل sendAudio
  • کلیدواژه upload_document هنگام استفاده از از متد sendDocument و ارسال فایلها
  • کلیدواژه find_location هنگام کار با موقعیت مکانی و استفاده از متد sendLocation
  • و مورد آخر کلیدواژه های record_video_note و upload_video_note هنگام استفاده از از متدهای کار با فایلهای نوتهای ویدئویی مثل sendVideoNote


امیدوارم خوشتون اومده باشه

کانال تلگرامی: @howCreateBot


لینک شروع آموزشها:

https://virgool.io/@mohsen322/writing-telegram-php-bot-with-10-lines-fbmxxrd8sjqq