در این آموزش به ساخت بات تلگرام با استفاده از لاراول و پکیج باتمن میپردازیم.
برای ساخت این بات شما باید دانش خوبی در زمینه برنامهنویسی، زبان PHP و فریمورک لاراول داشته باشید.
پیشنیازها:
پیاچپی نسخه ۷ به بالا
لاراول نسخه ۵.۸
پکیج باتمن
و ngrok برای ارتباط لوکالهاست و بات تلگرام
برای شروع شما باید با دستور زیر، نصاب باتمن استودیو رو دانلود کنید
composer global require "botman/installer"
با اجرای موفق دستور بالا، نصاب باتمن روی سیستم شما نصب میشه و بعد از اون میتونید هرکجا خواستید با دستور زیر یک پروژه جدید ایجاد کنید
botman new botman-telegram
با اجرای دستورات بالا، لاراول به همراه پکیج باتمن و چیزهای دیگهای که نیاز هست در پوشه موردنظر شما نصب میشه.
باتمن پکیجی هست که به این قابلیت رو به ما میده که بتونیم برای پیامرسانهای متفاوتی چتبات توسعه بدیم، تلگرام، اسلک، ویچت، فیسبوک مسنجر از جمله این پیامرسانهاست. لیست کامل پیامرسانهایی که پشتیبانی میکنه رو میتونید در سایت باتمن پیدا کنید.
برای کار با هرکدوم از پیامرسانهایی که در بالا عنوان کردم، شما باید درایور مخصوص اون رو نصب کنید. در اینجا ما نیاز داریم که درایور تلگرام رو نصب کنیم که این کار از طریق دستور زیر انجام میشه.
php artisan botman:install-driver telegram
بعد از نصب درایور شما باید توکن بات تلگرام خودتون رو داخل فایل .env وارد کنید. برای اینکار، ابتدا باید بات خودتون رو در تلگرام ایجاد کنید. برای ساخت بات تلگرام به BotFather برید، با دستور /newbot درخواست ایجاد بات جدید رو ارسال کنید، باتفادر ازتون میخواد که برای بات خودتون یک نام انتخاب کنید. بعد از وارد کردن نام، در مرحله بعد ازتون خواسته میشه که برای بات یک نامکاربری (username) انتخاب کنید، توجه کنید که نام کاربری بات شما باید با کلمه bot تموم بشه مثل: MySimpleBot یا my_simple_bot
بعد از انتخاب نام کابری، بات شما ایجاد میشه و باتفادر یک پیغام به شما میده که در اون یک رشته طولانی با عنوان توکن (token) هست که از طریق این توکن شما میتونید با API تلگرام ارتباط برقرار کنید و تلگرام از این به بعد درخواستهای بات شما رو از طریق این توکن شناسایی میکنه.
در قدم بعدی ما باید این توکن رو در پروژه خودمون قرار بدیم تا بتونیم با بات کار کنیم. فایل .env در پوشه پروژهتون رو باز کنید و در آخر این فایل این خط رو وارد کنید
TELEGRAM_TOKEN=YOUR_TELEGRAM_BOT_TOKEN
و مقدار توکن بات خودتون رو بهجای مقدار پیشفرض قرار بدید.
تا اینجای کار ما با موفقیت بات تلگرام خودمون رو درست کردیم، حالا کاری که باید بکنیم اینه که یک جوری بین این بات و لوکالهاست ارتباط برقرار کنیم تا بتونیم بات رو در لوکال توسعه بدیم.
برای این کار نیاز داریم با استفاده از ngrok لوکالهاست خودمون رو به اشتراک بگذاریم. به این صورت که با استفاده از ngrok یک آدرس به لوکالهاست ما اختصاص داده میشه و با استفاده از اون ما میتونیم در لوکالهاست به بات تلگرام متصل بشیم و کار توسعه بات رو انجام بدیم.
اگر با ngrok آشنا نیستید و نحوه کار اون رو نمیدونید با یک جستجو در اینترنت به منابع آموزشی خوبی میرسید. خودم هم سعی میکنم در آینده یک مطلب در موردش بنویسم.
من همیشه برای توسعه وب اپلیکیشنها در لوکال از Laragon استفاده میکنم. لاراگن معادل XAMPP یا WAMP هست و بستری برای توسعه نرمافزارهای تحت وب فراهم میکنه با این تفاوت که یک سری ابزار جانبی و مفید دیگه هم برای توسعه در اختیار شما به صورت یک پکیج آماده قرار میده که ngrok هم یکی از این ابزارهاست.
شما در این آموزش یا میتونید از ngrok به صورت مجزا استفاده کنید و یا اینکه از طریق نصب و راهاندازی لاراگن بهش دسترسی داشته باشید.
اگر از لاراگن استفاده میکنید برای کار با ngrok و دریافت آدرس عمومی روی آیکن لاراگن در تسکبار راستکلیک کنید و از منوی www به مسیر share برید و روی نام پروژه خودتون کلیک کنید. بعد از این کار ngrok اجرا میشه و مطابق تصویر زیر به شما دوتا آدرس عمومی میده که یکی با https شروع میشه و دیگری با http و چون برای ارتباط با تلگرام نیاز هست از پروتکل امن استفاده بشه، ما نیاز به آدرسی داریم که با https شروع میشه.
توجه کنید که نباید پنجره ngrok بسته بشه و تمام مدت باید برای ارتباط تلگرام با بات از طریق آدرس ایجاد شده توسط ngrok باز باشه.
بعد از انجام این کار ما باید این آدرس عمومی که ngrok برامون درست کرده رو به پروژه و بات معرفی کنیم. به پوشه پروژه برید و خط فرمان (کنسول یا cmd) رو باز کنید و دستور زیر رو بزنید.
php artisan botman:telegram:register
بعد از زدن دستور بالا در خط فرمان، پیغامی به شما داده میشه که آدرس ارتباط با بات تلگرام رو وارد کنید. شما باید آدرسی که در مرحله قبل ngrok براتون ایجاد کرده رو وارد کنید. توجه کنید که حتما آدرس باید با https شروع بشه و در آخر هم باید /botman رو به انتهای آدرس اضافه کنید. بعد از این کار پیغامی مبنی ست شدن وبهوک تلگرام به شما داده میشه و از اینجا به بعد بات تلگرام شما به لوکالهاست متصل شده.
حالا به پوشه پروژه برید و داخل پوشه routes فایل botman.php رو باز کنید.
این فایل route مخصوص botman هست که به عنوان مسیریاب بات شما عمل میکنه. اگر با لاراول کار کرده باشید، حتما با فایلهای داخل پوشه route آشنایی دارید.
کارکرد روت botman به این صورت هست که در جواب سوالی که ازش میشه، یک پاسخ ارسال میکنه. این پاسخ میتونه در خود روت ارسال بشه مثل خط ۶ تا ۸، یا اینکه پاسخ از طریق کنترلر مخصوص خودش ارسال بشه مثل خط ۹.
در تصویر میبینید که بات پاسخ کاربر رو متناسب با چیزی که میفرسته میده. با استفاده از پکیج باتمن شما نه تنها میتونید به سادگی بات برای تلگرام بسازید بلکه میتونید برای پیامرسانهای دیگه هم بات درست کنید. باتمن قابلیتهای مختلف رو برای تلگرام پشتیبانی میکنه، مثل ارسال و دریافت عکس، ویدیو، صوت و لوکیشن.
در این آموزش نحوه ساخت بات تلگرام، تبدیل آدرس لوکال به آدرس عمومی توسط ngrok و اتصال اون به بات و نحوه کارکرد روت باتمن و ارسال پاسخ به کاربر توضیح داده شد. برای اطلاعات بیشتر میتونید به مستندات باتمن مراجعه کنید.
دیدگاهتان را بنویسید