ویرگول
ورودثبت نام
Mohsen
Mohsenیه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
Mohsen
Mohsen
خواندن ۲ دقیقه·۸ سال پیش

آموزش ساخت دکمه های اینلاین در روباتهای تلگرام با php

این آموزش بنا به درخواست میلاد و در ادامه ی تکمیل سری آموزشهای روبات نویسی تلگرام نگارش میشه.

یکی از قابلیتهای جالب API تلگرام توانایی ارسال و دریافت دیتا بصورت پسزمینه و چیزی مانند تکنیک AJAX در طراحی وبسایتها هستش. این امکان کثیف کاری ارسال دستوراتی که با اسلش (/) شروع میشن مثل /start یا ... رو از بین میره و یک روبات حرفه ای تر رو میتونیم بنویسیم.

نمونه این دکمه ها جهت آشنایی بیشتر با مطلبی که قصد آموزشش رو داریم توی روبات زیر میتونید مشاهده کنید؛ حتما پیشنهاد میکنم قبل از شروع یه چک کنید تا بهتر آموزش رو متوجه بشید.

https://t.me/music

بعد از استارت روی دکمه Get Random Music کلیک کنید و بعد روی Load More. اینها نمونه های دکمه های اینلاین هستند.

شروع آموزش...

برای ساختن دکمه های اینچنینی کافیه مثل ساخت دکمه های لینک دار یا همون دکمه های شیشه ای، که آموزشش رو قبلا دادیم عمل کنید. فقط اینجا بجای نوشتن لینک که باعث میشد یک آدرس وب باز بشه یا آدرسهای دیگه، پارامتر مربوطه رو خالی میذاریم و پارامتر بعدی که مربوط به ارسال دیتا بصورت callback هست رو پر میکنیم. کدها و توضیحات:

$option = array(
array($telegram->buildInlineKeyboardButton("Click On Me!","","hi",""))
);
$keyb = $telegram->buildInlineKeyBoard($option);

خط بالا یه دکمه رو به شکل اینلاین و با متن Click On Me! میسازه و موقعی که روش کلیک میشه مقدار hi بصورت پس زمینه یا همون callback از طریق API در اختیار ما قرار داده میشه تا ازش استفاده کنیم. پس مرحله اول شد ارسال مقدار کال‌بک.

دریافت دیتای ارسالی CallBack

مرحله دوم و اصل کارمون دریافت دیتا هستش، توی این کلاس php که در جلسه اول معرفی کردیم و آموزشهاش رو دارم تکمیل میکنم، باید شرط زیر رو بذاریم تا بتونیم تشخیص بدیم دیتایی بصورت کال‌بک ارسال شده یا خیر.

if ($callback_query !== null && $callback_query != "") {
// Commnad HERE
}

پس همینطور که حتما متوجه شدید ما به متغیرهای callback هم نیاز داریم که باید ابتدای کار معرفی بشه. این متغیرها برای این آموزش موارد زیر هستن:

$callback_data = $telegram->Callback_Data();
$callback_query = $telegram->Callback_Query();
$callback_chat_id = $telegram->Callback_ChatID();

حالا برای نوشتن شرطی که بفهمیم مقدار hi ارسال شده باید خطوط زیر رو اضافه کنیم:

if ($callback_query !== null && $callback_query != "") {
if($callback_data=='hi') { $content = array('chat_id' => $callback_chat_id, 'text' => 'Hi There!');
$telegram->sendMessage($content); }
}

توی دستورات بالا من شرط گذاشتم که اگر مقدار hi ارسال شد در پاسخ عبارت Hi There! به کاربر در پاسخ نشون داده بشه.

کدهای کامل این آموزش رو میذارم روی کانال. امیدوارم خوشتون اومده باشه؛ فکر میکنم این ساده ترین آموزش این بحث پیچیده ی کار با دیتاهای اینلاین در روباتهای تلگرام به زبان فارسی باشه :)) اگه باز هم متوجه نشدین کدها رو چک کنید قطعا متوجه خواهید شد.

telegram bot
۱۴
۱۳
Mohsen
Mohsen
یه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
شاید از این پست‌ها خوشتان بیاید