آموزش گام به گام ساخت ربات تلگرام با php
ربات تلگرام در واقع نرم افزاری است که در داخل اپلیکیشن تلگرام اجرا میشود. با استفاده از API ربات میتوانید درخواست های HTTP را مدیریت کنید، تلگرام را با سایر وب سرویسها ادغام کنید، عملکرد سایت خود را گسترش دهید و یا خدمات خود را ارائه دهید. در ادامه به طور کامل به آموزش ساخت ربات تلگرام با php میپزدازیم.
مقاله پییشنهادی : آموزش ساخت ربات تلگرام با جاوا
مراحل ساخت ربات تلگرام با php
ما در چند قدم ساده آموزش ساخت ربات تلگرام با php را ارائه خواهیم داد. این قدمها که در ادامه رو هرکدام تخصصی کارخواهیم کرد عبارتاند از:
- ساخت ربات پیشفرض برای مدیریت ربات BotFather
- ایجاد هوک برای ربات تلگرام
- کد نویسی ربات
- آپلود ربات در وب سرور
- آزمایش ربات ساختهشده با php
مرحله اول: ساخت ربات با BotFather
اولین قدم برای ایجاد ربات تلگرام، تنظیم پروفایلی است که ربات درنهایت پشت آن قرار خواهد گرفت و توسط آن مدیریت خواهد شد. این مرحله به این صورت است که یک توکن برای API تلگرام دریافت میکنید.
برای راهاندازی یک پروفایل ربات جدید، وارد حساب کاربری تلگرام خود شوید و با BotFather (@BotFather)، یک حسابرسمی که به شما امکان ایجاد و مدیریت رباتها را میدهد، بسازید. در آن مکالمه با بات فاتر، دستور newbot / را وارد کنید.
BotFather از شما میخواهد که یک نام نمایشی و نام کاربری برای ربات خود انتخاب کنید. نام کاربری باید به “bot” ختم شود و باید منحصربهفرد باشد. در مثال ما، نام نمایشی makhtabkhooneh و نام کاربری kami1994bot را تعیین کردهایم.
هنگامیکه یک نام کاربری معتبر دریافت کردید، BotFather بهطور خودکار ربات شمارا ثبت میکند و با یک توکن مربوط به API تلگرام، که مختص آن ربات است، پاسخ میدهد. توکن خود را باکسی به اشتراک نگذارید.
مرحله دوم: یک هوک برای ربات خود ایجاد کنید
مرحله بعدی در ایجاد ربات تلگرام، راهاندازی وب هوکی است که با ربات شما ارتباط برقرار میکند. وب هوک ویژگی استر که در اپلیکیشن های مبنی بر وب برای ارسال نوتیفیکیشن و اتفاقات از آم استفاده میشود.
تلگرام فقط از یک نوع وب هوک استفاده میکند که هر زمان که اتفاقی بیفتد یک شی به روز برای شما ارسال میکند.
راهاندازی وب هوک فوقالعاده آسان است. در این رابطه دو نکته وجود دارد که باید بدانید: توکن API خود (از مرحله اول باید آن را داشته باشید) و URL جایی که ربات خود را میزبانی میکنید. URL چیزی شبیه https://yourdomain.com/yourbot.php خواهد بود. مطمئن شوید که از پروتکل https در میزبانی خود استفاده میکنید. در غیر این صورت، تلگرام وب هوک را ارسال نخواهد کرد.
اکنون، در یک مرورگر وب معمولی، به نشانی زیر بروید:
https://api.telegram.org/bot<yourtoken>/setwebhook?url=https://yourdomain.com/yourbot.php بروید. Voila، وب هوک شما اکنون راهاندازی شده است!
توکن خود را به جای عبارت yourtoken قرار دهید تا وب هوک بهصورت کامل راهاندازی شود.
مرحله سوم: کد نویسی منطق ربات برای ساخت ربات تلگرام با php
در این مرحله، شما هر آنچه را که برای نوشتن منطق ربات تلگرام خود نیاز دارید، باید بنویسید. ما در این بخش برنامهنویسی کمی انجام میدهیم. بنابراین ما Notepad را باز میکنیم و شروع به نوشتن کد در آنجا میکنیم.
مقاله پییشنهادی : بهترین کتابهای آموزش php
اولین کاری که باید انجام دهید این است که متغیری را مقداردهی اولیه کنید که تماس با API تلگرام را برای ما آسان کند تعریف کنیم. این کار بهسادگی قابل انجام و بهصورت $path = “https://api.telegram.org/bot<yourtoken> است.
ازآنجاییکه بهروزرسانیها را از طریق وبهوک دریافت خواهیم کرد، بیایید یک آرایه با دادههای بهروزرسانی ایجاد و پرکنیم:
$update = json_decode(file_get_contents("php://input")، TRUE)
اکنون، برای سهولت در کارهای آینده، بیایید دو بخش مهم از دادهها را از آن بهروزرسانی استخراجکنیم – شناسه چت و پیام (اگر بهروزرسانی ناشی از یک پیام جدید نباشد، ممکن است این قسمت خالی باشد و ما برای آن کد اختصاصی باید بنویسیم که فعلاً با این بخش کاری نداریم.
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
این ربات تلگرام قرار است برای ما وضعیت آبوهوایی آن منطقه را نشان دهد. بنابراین برای آن، یک فرمان /weather [location] ایجاد میکنم.
برای انجام این کار، بیایید یک دستور if ایجاد کنیم تا ببینیم آیا پیام با /weather شروع میشود یا خیر. ما میتوانیم این کار را با تابع strpos() انجام دهیم، که موقعیت یک زیررشته را در یکرشته به ما میگوید:
if (strpos($message, "/weather") === 0) {
}
این شرایط در داخل دستور if قرارگرفته است، بیایید کدی بنویسیم تا با حذف 9 کاراکتر اول پیام، مکان را استخراج کند (یعنی تعداد کاراکترهای استفادهشده توسط دستور /weather و همچنین فضایی که به دنبال آن خواهد بود):
if (strpos($message, "/weather") === 0) {
$location = substr($message, 9);
}
اکنون در این قسمت از ساخت ربات تلگرام با php دادههای آبوهوای آن مکان را از OpenWeatherMap دریافت میکنیم:این کار بهصورت زیر قابل انجام است.
$weather = json_decode(file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".$location."&appid=mytoken"), TRUE)["weather"]["main"];
در اینجا ما باید نوعی مدیریت خطا را نیز بهصورت زیر پیادهسازی کنیم.
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Here's the weather in ".$location.": ". $.weather);
درمجموع سورس کد کامل ساخت ربات تلگرام با php بهصورت زیر خواهد بود.
<?php
$path = "https://api.telegram.org/bot<yourtoken>;
$update = json_decode(file_get_contents("php://input"), TRUE);
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
if (strpos($message, "/weather") === 0) {
$location = substr($message, 9);
$weather = json_decode(file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".$location."&appid=mytoken"), TRUE)["weather"][0]["main"];
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Here's the weather in ".$location.": ". $weather);
}
?>
مرحله چهارم: آپلود ربات در وب سرور امن
با منطق و کد نویسی انجامشده، کد خود را بهعنوان یک فایل PHP ذخیره کنید. سپس، فایل را در آدرس اینترنتی که قبلاً برای راهاندازی وب هوک استفاده کرده بودید آپلود کنید.
من میزبانی وب خودم را دارم که برای یک وبسایت شخصی از آن استفاده میکنم، بنابراین فایل را با استفاده از cPanel در ریشه اصلی وبسایت آپلود میکنم. یعنی در پوشه public.html.
مرحله پنجم: تست و بهینهسازی ربات
اکنون زمان آن است که ربات تلگرام جدید خود را آزمایش کنیم! پس از رفع برخی باگها در کد ربات هواشناسی فعال میشود. با شروع گفتگو با ربات و اشتراکگذاری لوکیشن یا مکان خود میتوانید وضعیت آب و هوایی خود را دریافت کنید.
نتیجه گیری
آموزش بالا یک آموزش ساده از ساخت ربات تلگرام با php بود. شما میتوانید با دست کاری و بهینهتر کردن سورس کد بالا ویژگیها و امکانات بیشتری به آن اضافه کنید. در قدم های ساخت ربات دقت کنید که دچار اشتباه نشوید. با کوچکترین اشتباه ممکن است که ربات شما به درستی کار نکند. امیدوارم که آموزش ما مورد توجه شما قرارگرفته باشد.