ربات تلگرام چیست و چرا به آن نیاز داریم؟
ساخت ربات تلگرام یکی از روشهای جذاب برای خودکارسازی خدمات در پیامرسان تلگرام است. رباتها حسابهای کاربری هوشمندی هستند که بهجای انسان، با برنامهنویسی کنترل میشن و میتونن:
- پاسخگویی خودکار به سوالات کاربران
- دریافت اطلاعات از کاربران (مثلاً سفارش غذا یا فرم ثبتنام)
- نمایش قیمت ارز، آبوهوا، اخبار، اطلاعات بورس و…
- مدیریت گروهها و کانالها
- بازی و سرگرمی
استفاده از رباتها باعث افزایش بهرهوری، تعامل کاربران و صرفهجویی در زمان میشه.
هدف آموزش ساخت ربات تلگرام چیست؟
توی این مقاله میخوایم قدمبهقدم و از صفر، ساخت ربات تلگرام با PHP رو یاد بگیریم. هیچ نیازی به کتابخانه یا فریمورک خاصی نیست. فقط با PHP خام و چند ابزار ساده، یک ربات واقعی میسازیم.
چه چیزهایی برای ساخت ربات تلگرام نیاز داریم؟
- حساب کاربری در تلگرام
اگر هنوز حساب نداری، با نصب تلگرام و ثبتنام یک حساب بساز.
- یک هاست یا سرور با قابلیت اجرای PHP
ما باید یک فایل PHP بسازیم و اون رو روی هاست آپلود کنیم تا تلگرام بتونه باهاش ارتباط بگیره. اگر هاست نداری میتونی از لوکال هاست + ngrok استفاده کنی (در بخش مربوط به Webhook توضیح میدم).
- یک ادیتور ساده مثل Notepad++ یا VS Code
برای نوشتن کدهای PHP.
مراحل ساخت ربات تلگرام در BotFather
در این مرحله میخوایم اولین قدم جدی رو برداریم: ساخت ربات در تلگرام و گرفتن توکن مخصوص اون. این توکن مثل کلید ورود به رباتت هست، پس حتماً با دقت نگهش دار.
مرحله ۱: رفتن به BotFather
توی قسمت جستوجوی تلگرام بنویس:
@BotFather
و وارد رباتی به همین اسم بشو. این ربات مخصوص خود تلگرامه و برای ساخت و مدیریت رباتها استفاده میشه.
مرحله ۲: ساخت یک ربات جدید
بعد از باز کردن BotFather روی دکمهی Start بزن، سپس دستور زیر رو بفرست:
/newbot
BotFather ازت چند سوال میپرسه:
- نام رباتت رو بپرسه (مثلاً: ربات تستی من)
- بعد از اون باید یک نام کاربری (username) وارد کنی که با
botتموم بشه.
مرحله ۳: دریافت توکن
بعد از انتخاب نام کاربری، BotFather بهت پیامی میده که توش یک چیزی شبیه به این هست:
Done! Congratulations on your new bot. You will find it at t.me/TestyBot.
Use this token to access the HTTP API:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ12345678
این رشتهی طولانی همون توکن ربات توئه. خیلی مهمه!
نکته: تا اینجا هنوز ربات ما هیچ کاری نمیکنه. فعلاً فقط ساختش رو انجام دادیم. در مرحلهی بعد یاد میگیریم چطور با PHP به این ربات وصل بشیم و پیام بگیریم.
چطور با استفاده از PHP به ربات وصل بشیم و پیام کاربر رو بخونیم و جواب بدیم؟
اتصال به ربات تلگرام با PHP
حالا وقتشه به رباتی که تو BotFather ساختیم وصل بشیم و کاری کنیم که بتونه پیامهای کاربران رو بخونه و جواب بده.
مرحله ۱: ایجاد فایل PHP
یک فایل جدید ایجاد کن و اسمش رو بذار مثلاً: bot.php
و این کد ساده رو داخلش قرار بده:
<?php
// توکن ربات که از BotFather گرفتی
$token = “123456789:ABCdefGHIjklMNOpqrSTUvwxYZ12345678”;
// محتوای پیام دریافتی از تلگرام (به صورت JSON)
$update = file_get_contents(“php://input”);
// تبدیل JSON به آرایه PHP
$update = json_decode($update, true);
// گرفتن اطلاعات از پیام
$chat_id = $update[“message”][“chat”][“id”];
$text = $update[“message”][“text”];
// پاسخ به پیام
$response = “شما نوشتید: ” . $text;
// ارسال پاسخ به کاربر
file_get_contents(“https://api.telegram.org/bot$token/sendMessage?chat_id=$chat_id&text=” . urlencode($response));
کاری که این کد میکنه:
- پیامهایی که به ربات ارسال میشن رو میگیره
- متن پیام رو استخراج میکنه
- همون متن رو دوباره برای کاربر میفرسته
مرحله ۲: آپلود فایل روی هاست
این فایل bot.php رو باید روی هاستت آپلود کنی. مثلاً اگر هاستت دامنهای مثل https://yoursite.ir داره، فایل رو بریز توی مسیر:
https://yoursite.ir/bot.php
مرحله ۳: اتصال ربات به فایل با Webhook
حالا باید به تلگرام بگیم که هر وقت کاربری به ربات پیام داد، اطلاعات اون پیام رو برای این فایل (bot.php) ارسال کنه. این کار با دستور زیر انجام میشه:
https://api.telegram.org/bot<توکن>/setWebhook?url=<آدرس-کامل-فایل>
مثلاً اگر توکن تو این باشه:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ12345678
لینک تنظیم Webhook میشه:
https://api.telegram.org/bot123456789:ABCdefGHIjklMNOpqrSTUvwxYZ12345678/setWebhook?url=https://yoursite.ir/bot.php
این لینک رو توی مرورگر باز کن تا پیام {"ok":true,"result":true,"description":"Webhook was set"} ببینی.
از این لحظه به بعد، هر کاربری به ربات پیام بده، اون پیام به فایل PHP تو ارسال میشه و ربات بهش پاسخ میده.
تست نهایی
- به ربات خودت در تلگرام برو (مثلاً t.me/TestyBot)
- یک پیام بفرست (مثلاً “سلام”)
- ربات باید همون متن رو بهت برگردونه:
شما نوشتید: سلام