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

در این قسمت از آموزش قصد داریم کیبوردی از نام شعرای ایرانی را نمایش داده که وقتی روی نام شاعر کلیک شود بیتی از آن شاعر نمایش داده شود.

برای شروع در botFather کامند poets را اضافه می‌کنیم:

اضافه کردن کامند به بات تلگرام

برای ارسال کیبورد به کاربر از متد 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 == '/poets'){
    $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);
}

اگر این فایل را به هاست خود منتقل کنید مشاهده خواهید کرد که کاربر به محض کلیک روی poets یک کیبورد چهار کلیده با نام‌های سه شاعر ایرانی مشاهده می‌کند.

در این مرحله ما چهار کامند جدید /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 آرایه‌ای دارد که با ارسال آن کیبورد بسته می‌شود.

تگ ها: messenger / پیام رسانربات تلگرام / Telegram Botتلگرام