در جلسات قبل روش ساخت ربات و برنامه نویسی برای ربات را آموزش دادیم. برای مدیریت ربات توسط برنامه از هر دو روش long polling و web hook استفاده کرده همچنین با سایت بات ساز آشنا شده و برنامه های برای ارتباط با بات ساز نوشتیم . در این جلسه دو نمونه برنامه api برای ربات می نویسیم که با روش وب هوک با ربات در ارتباط باشند.
ربات برای تکرار پیام فرستاده شده
عملکرد برنامه زیر برای ربات تلگرام به شکلی عمل می کند که در صفحه گفتگوی تلگرام هر پیامی فرستاده شد، ربات در پاسخ به آن ، همان پیام را می فرستد.
<?php
function sendMessage($datas){
$url = "https://panel.botsaz.com/api/bot/sendMessage";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
$datas["api_key"]=API_KEY;
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query($datas));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
return json_decode($server_output);
}
ob_start();
$content= file_get_contents("php://input");
$update = json_decode($content);
define("API_KEY" , "584bbd612a4499f7d707b50e053b5664");
$text = $update->message->text;
$text_reply ="payame shoma: $text";
sendMessage([
"text"=>$text_reply,
"chat_id"=>$update->message->chat->id,
"reply_to_message_id"=>$update->message->message_id
]);
?>
تابع sendMessage پیاده سازی شده که یک آرایه به عنوان پارامتر می پذیرد و متد sendMessage بات ساز را صدا می زند. مقادیر داخل آرایه به عنوان پارامترهای متد در کوئری قرار داده شده و به بات ساز فرستاده می شوند.
پیاده سازی ربات فرهنگ لغت
این ربات تلگرام طوری برنامه ریزی شده تا در صورت فرستادن یک علامت اختصاری، عبارت کامل آنرا نمایش دهد. بعنوان مثال اگر در صفحه چت تلگرام کلمه RAM را بفرستید، ربات عبارت Random Access Memory را نمایش دهد.
برنامه api زیر برای مدیریت ربات دیکشنری فوق نوشته شده است:
<?php
function sendMessage($datas){
$url = "https://panel.botsaz.com/api/bot/sendMessage";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
$datas["api_key"]=API_KEY;
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query($datas));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
return json_decode($server_output);
}
$terms=array("ram"=>'Random Access Memory', 'rom'=>'Read Only Memory', 'cd' =>'Compact Disk', 'cpu'=>'Central Processing Unit');ob_start();
$content= file_get_contents("php://input");
$update = json_decode($content);
define("API_KEY" , "584bbd612a4499f7d707b50e053b5664");
$text = $update->message->text;
$text = strtolower($text);
$text_reply = "'$text' taarif nashodeh";
foreach( $terms as $k=>$v)
if($text==$k)
$text_reply =$text.":".$terms[$text];
sendMessage([ "text"=>$text_reply,
"chat_id"=>$update->message->chat->id,
"reply_to_message_id"=>$update->message->message_id]);?>
در این برنامه اصطلاحات اختصاری و عبارت معادل آنها در یک آرایه انجمنی قرار داده شده و پیام دریافتی از ربات در آرایه جستجو می شود. اگر در آرایه پیدا شد عبارت معادل آنرا و گرنه پیام taarif nashodeh را برای نمایش به بات ساز می فرستد.