سلام.
این روزا یکی از پر جست و جو ترین واژه های کاربران ایرانی "تلگرام" هست. قطعا با توجه به محبوبیت چشمگیر این نرم افزار پیام رسان نیاز به نوشتن ربات برای تلگرام هم بیشتر میشه. اینجا من یه فریمورک ساده برای نوشتن ربات البته به زبان php و مثال نحوه استفاده رو خدمتتون عرض میکنم.
خوب، آماده اید؟
یکی از ساده ترین و کم حجم ترین فریمورک ها برای ساخت ربات تلگرام TelegramBotPhp هست که امروز توی github پیدا کردم. نحوه کار خیلی سادست توی صفحه readme پروژه هم توضیح داده شده.
قدم ۰ - ایجاد ربات و اخذ token از تلگرام
قبل از اینکه شروع کنید اول باید ربات رو ایجاد کنید و Bot token رو داشته باشید. برای این کار از Botfather استفاده کنید.
قدم ۱ - ایجاد پروژه و نصب فریمورک
یه دایرکتوری با اسم دلخواهتون مثلا bot ایجاد کنید و واردش بشین و بوسیله composer فریمورک رو نصب کنید:composer require eleirbag89/telegrambotphp
قدم ۲ - ایجاد فایل، اضافه کردن فریمورک به پروژه
حالا باید فایل اصلی ربات رو ایجاد کنید تا update ها به اون فایل ارسال بشن برای این کار فایلی به نام update.php بسازید و این کد رو به ابتدای اون اضافه کنید.
include (__DIR__ . '/vendor/autoload.php');
$telegram = new Telegram('YOUR TELEGRAM TOKEN HERE');
بجای YOUR TELEGRAM TOKEN HERE هم bot token که از botfather گرفتید رو قرار بدید.
**حالا همه چیز آمادست! **
مثال ها
ارسال پیام به کاربر
$telegram = new Telegram('YOUR TELEGRAM TOKEN HERE');
$chat_id = $telegram->ChatID();
$content = array('chat_id' => $chat_id, 'text' => 'Test');
$telegram->sendMessage($content);
ارسال تصویر به کاربر
// Load a local file to upload. If is already on Telegram's Servers just pass the resource id
$img = curl_file_create('test.png','image/png');
$content = array('chat_id' => $chat_id, 'photo' => $img );
$telegram->sendPhoto($content);
دانلود فایل مشخص
$file = $telegram->getFile($file_id);
$telegram->downloadFile($file['result']['file_path'], './my_downloaded_file_on_local_server.png');
ساخت کیبورد
$option = array(
//First row
array($telegram->buildKeyboardButton("Button 1"), $telegram->buildKeyboardButton("Button 2")),
//Second row
array($telegram->buildKeyboardButton("Button 3"), $telegram->buildKeyboardButton("Button 4"), $telegram->buildKeyboardButton("Button 5")),
//Third row
array($telegram->buildKeyboardButton("Button 6")) );
$keyb = $telegram->buildKeyBoard($option, $onetime=false);
$content = array('chat_id' => $chat_id, 'reply_markup' => $keyb, 'text' => "This is a Keyboard Test");
$telegram->sendMessage($content);
برای نمایش تمام متدهای این فریموک به صفحه رسمی اون مراجعه کنید.
یادتون نره!
یادتون نره که webhook رو ست کنید! برای ست کردن webhook از این روش استفاده کنید:https://api.telegram.org/bot[yourbotkey]/setwebhook?url=[sslwebhookurl]
بجای [yourbotkey] همون کدی که از botfather گرفتید رو قرار بدید و بجای [sslwebhookurl] هم آدرس فایل اصلی ربات که https هست رو قرار بدید. در صورتی که مشکلی وجود نداشته باشه تلگرام پیام "Webhook was set" رو نمایش میده.