در قسمتهای اول و دوم از این آموزش با رباتهای تلگرام بیشتر آشنا شدیم و توانستیم یک ربات ساده برای نمایش درباره ما برنامه نویسی کنیم. در این قسمت برنامهای مینویسیم که برای کاربر یک کیبورد نمایش دهد.
در این قسمت از آموزش قصد داریم کیبوردی از نام شعرای ایرانی را نمایش داده که وقتی روی نام شاعر کلیک شود بیتی از آن شاعر نمایش داده شود.
برای شروع در botFather کامند poems را اضافه میکنیم:
برای ارسال کیبورد به کاربر از متد sendMessage استفاده میکنیم و پارامتر text و reply_markup را برای آن ارسال میکنیم. پارامتر text پیام مناسب کیبورد را برای کاربر ارسال میکند؛ و Replay_markup آرایهای است که مقادیر کیبورد را ارسال میکند.
سورس قبلی را که برای مشاهده متن درباره ما بود به شکل زیر تغییر میدهیم:
<?php
header('Content-Type: text/html; charset=utf-8');
$message= file_get_contents("php://input");
$arrayMessage= json_decode($message, true);
$token= "249879980:AAHNdWnXjdq6Fw17NF81xXTtjA3xs19Sc6w";
$chat_id= $arrayMessage['message']['from']['id'];
$command= $arrayMessage['message']['text'];
if($command == '/start'){
$text= "سلام، به ربات ما خوش آمدید";
$url= "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat_id."&text=".$text;
file_get_contents($url);
}else if($command == '/aboutus'){
$text= "این یک متن درباره ماست";
$url= "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat_id."&text=".$text;
file_get_contents($url);
}else if($command == '/poems'){
$poets= array(
'keyboard' => array(
array('/Ferdowsi', '/Mawlawi', '/Hafez', '/Rudaki')
),
);
$jsonPoets= json_encode($poets);
$text= "نام یکی از شعرای بزرگ ایرانی را انتخاب کنید";
$url= "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat_id."&text=".$text."&reply_markup=".$jsonPoets;
file_get_contents($url);
}else{
$text= "دستور نا معتبر است";
$url= "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat_id."&text=".$text;
file_get_contents($url);
}
اگر این فایل را به هاست خود منتقل کنید مشاهده خواهید کرد که کاربر به محض کلیک روی poems یک کیبورد چهار کلیده با نامهای سه شاعر ایرانی مشاهده میکند.
در این مرحله ما چهار کامند جدید /Rudaki
و /Hafez
و /Mawlawi
و /Ferdowsi
داریم که هر کدام یک بیت شعر را به کاربر نمایش میدهد.
اگر سورس بالا را چک کنید متوجه میشوید بعد از کلیک بر روی نام شاعر و نمایش بیت شعر مرتبط کیبورد باز ظاهر میماند. برای مخفی کردن کیبورد پس از نمایش بیت شعر باید یک آرایه hide_keyboard => true
ایجاد میکنیم و آن را ضمیمه url نمایش بیت شعر میکنیم:
}else if($command == "/Ferdowsi"){
$text= "خردمند باش وبی آزارباش همیشه زبانرا نگهدار باش";
$hide_keyboard= json_encode(array('hide_keyboard' => true));
$url= "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat_id."&text=".$text."&reply_markup=".$hide_keyboard;
file_get_contents($url);
}
در سطر 9 متغیر hide_keyboard
آرایهای دارد که با ارسال آن کیبورد بسته میشود.
dedsec will give you the truth
join us
برنامه نویسی ربات تلگرام: قسمت چهارم
کیبورد ,نمایش ,میکنیم ,کاربر ,یک ,text ,کیبورد را ,این قسمت ,در این ,که برای ,را برای
درباره این سایت