تلگرام یک سرویس پیامرسان فوری محبوب است که به امنیت خود افتخار میکند. این سرویس تمام ویژگیهایی که از یک پلتفرم چت مدرن انتظار دارید را دارد، از جمله رباتهای چت: عاملهای مبتنی بر نرمافزار که میتوانید آنها را برای خواندن و پاسخ دادن به پیامهای سایر کاربران برنامهریزی کنید.
در این مقاله، مراحل گام به گام ساخت ربات تلگرام با PHP را توضیح خواهیم داد و شما را با ابزارها و روشهای لازم برای راهاندازی ربات تلگرام آشنا خواهیم کرد.
مقدمه
در دنیای امروز، رباتهای تلگرام به یکی از ابزارهای پرکاربرد و محبوب تبدیل شدهاند که میتوانند وظایف مختلفی را بهصورت خودکار انجام دهند. از ارائه اطلاعات لحظهای مانند وضعیت آب و هوا تا ارسال اخبار و جملات انگیزشی، رباتها تجربه چت را به سطح جدیدی ارتقا دادهاند. اگر به دنبال یادگیری ساخت ربات تلگرام با PHP هستید، این مقاله راهنمای کاملی برای شما خواهد بود. با استفاده از PHP و API تلگرام، شما میتوانید رباتهایی قدرتمند و کاربردی بسازید که بتوانند به صورت خودکار به پیامهای کاربران پاسخ دهند و اطلاعات مختلفی را در اختیار آنها قرار دهند.
پیشنیازهای لازم برای ساخت ربات تلگرام با PHP
برای ساخت ربات تلگرام با PHP و برنامه نویسی ربات تلگرام، نیاز به برخی ابزارها و تنظیمات اولیه دارید:
- حساب تلگرام: شما باید یک حساب تلگرام داشته باشید. در صورتی که هنوز حساب تلگرام ندارید، به راحتی میتوانید آن را با نصب اپلیکیشن تلگرام بر روی گوشی یا دسکتاپ خود ایجاد کنید.
- ساخت ربات با BotFather: برای ساخت ربات تلگرام، ابتدا باید با استفاده از BotFather یک ربات جدید ایجاد کنید. پس از ارسال دستور newbot/ به BotFather، نام و نام کاربری ربات را انتخاب کرده و توکن API دریافت خواهید کرد. این توکن برای دسترسی به API تلگرام ضروری است.
- نصب PHP و وبسرور: برای اجرای کدهای PHP، به یک وبسرور مانند Apache یا Nginx نیاز دارید که PHP را پشتیبانی کند. پیشنهاد میشود از بستههایی مانند XAMPP یا WAMP برای نصب PHP و راهاندازی وبسرور روی سیستم خود استفاده کنید.
- آشنایی با کار با APIها: برای برقراری ارتباط با API تلگرام، آشنایی با نحوه ارسال درخواستهای HTTP با استفاده از PHP ضروری است. به این منظور میتوانید از کتابخانههای مانند cURL استفاده کنید.
مراحل ساخت ربات تلگرام با PHP
در این بخش، مراحل ساخت ربات تلگرام با PHP را به صورت گام به گام توضیح خواهیم داد.
۱- تنظیم پروفایل ربات در تلگرام
تنظیم پروفایل ربات تلگرام خود اولین قدم در ایجاد یک ربات تلگرام، تنظیم پروفایلی است که ربات در نهایت پشت آن قرار میگیرد. این کار همچنین روشی است برای دریافت یک توکن برای API تلگرام.
برای تنظیم یک پروفایل ربات جدید، به حساب تلگرام خود وارد شوید و با BotFather (@BotFather)، که یک حساب رسمی است و به شما امکان ایجاد و مدیریت رباتها را میدهد، مکالمهای آغاز کنید. در آن مکالمه، دستورnewbot/ را وارد کنید.
BotFather از شما خواهد خواست که یک نام نمایشی و یک نام کاربری برای ربات خود انتخاب کنید. نام کاربری باید با “bot” تمام شود و باید منحصر به فرد باشد. در مثال ما، نام نمایشی WeatherBot و نام کاربری DifferentWeatherBot را انتخاب کردهایم.
پس از انتخاب یک نام کاربری معتبر، BotFather بهطور خودکار ربات شما را ثبت کرده و با یک توکن مخصوص به آن ربات برای API تلگرام پاسخ میدهد. مطمئن شوید که توکن خود را با کسی به اشتراک نگذارید.
۲- ایجاد وب هوک برای ساخت ربات تلگرام با PHP
مرحله بعدی در ایجاد یک ربات تلگرام، تنظیم وبهوک است که با ربات شما ارتباط برقرار کند. وبهوکها به این صورت عمل میکنند که به شما اطلاع میدهند که چیزی اتفاق افتاده است، بنابراین شما دیگر نیازی به پرس و جو مداوم از API برای یافتن اینکه آیا یک پیام جدید ارسال شده است، ندارید.
تلگرام فقط یک نوع وبهوک دارد که هر بار که اتفاقی بیفتد، یک شیء بهروزرسانی به شما ارسال میکند.
تنظیم وبهوک خیلی ساده است. تنها دو چیز را باید بدانید:
توکن API شما: که در مرحله اول به دست آوردهاید.
URLای که ربات شما در آن قرار خواهد گرفت: این URL باید به شکلی شبیه به https://yourdomain.com/yourbot.php باشد. مطمئن شوید که در ابتدای URL از https استفاده کردهاید، زیرا در غیر این صورت تلگرام وبهوک را ارسال نخواهد کرد.
حالا برای تنظیم وبهوک، در یک مرورگر وب معمولی، آدرس زیر را وارد کنید:
https://api.telegram.org/bot<yourtoken>/setwebhook?url=https://yourdomain.com/yourbot.php
پس از وارد کردن این آدرس و فشردن Enter، وبهوک شما فعال خواهد شد! Voila، ربات شما آماده دریافت بهروزرسانیها از تلگرام است.
۳- نوشتن منطق ربات تلگرام
در این مرحله، تمام اطلاعاتی که برای نوشتن منطق ربات تلگرام خود نیاز دارید در اختیار دارید. من اینطور ادامه میدهم…
من به طور معمول برنامهنویسی زیادی انجام نمیدهم که نیاز به استفاده از یک محیط توسعه یکپارچه (IDE) داشته باشم، بنابراین Notepad را باز میکنم و شروع به نوشتن کد خود در آنجا میکنم. از آنجا که از PHP استفاده میکنیم، حتماً منطق خود را بین تگهای <?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] ایجاد میکنم.
برای این کار، ابتدا باید یک دستور شرطی بنویسیم تا بررسی کنیم که آیا پیام با /weather شروع میشود یا خیر. این کار را میتوانیم با استفاده از تابع ()strpos انجام دهیم که موقعیت یک زیررشته در یک رشته را مشخص میکند.
if (strpos($message, "/weather") === 0) { }
درون این دستور شرطی، کدی مینویسیم تا مکان را استخراج کرده و اولین نه کاراکتر از پیام را برش دهیم (این تعداد کاراکتر شامل دستور /weather و فاصلهای است که بعد از آن قرار دارد).
if (strpos($message, "/weather") === 0) { $location = substr($message, 9); }
اگر این ربات قرار بود در محیط واقعی استفاده شود، لازم بود که برخی از پاکسازیهای ورودی را انجام میدادیم تا اطمینان حاصل کنیم که مکان به فرمت صحیح وارد شده است. اما چون این ربات برای استفاده شخصی است، نگران این مسئله نیستیم.
حالا، برای دریافت دادههای وضعیت آب و هوا برای آن مکان از OpenWeatherMap استفاده میکنیم.
$weather = json_decode(file_get_contents("https://api.openweathermap.org/data/2.5/weather?q=".$location."&appid=mytoken"), TRUE)["weather"]["main"];
در اینجا باید نوعی مدیریت خطا پیادهسازی کنیم، اما به دلایلی نمیخواهیم وقت خود را صرف این کار کنیم. بنابراین، به جای آن، فرض میکنیم که همه چیز به درستی انجام خواهد شد و پاسخ ربات را با استفاده از API تلگرام ارسال میکنیم.
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Here's the weather in ".$location.": ". $.weather);
در نهایت، کد به شکل زیر خواهد بود:
<?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("https://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 به سرور وب در ربات تلگرام
بعد از نوشتن منطق کد ربات، مرحله بعدی بارگذاری آن بر روی یک سرور وب امن است. ابتدا فایل PHP را ذخیره کنید و سپس آن را به URLای که پیشتر برای تنظیم وبهوک استفاده کردهاید، بارگذاری کنید.
اگر شما از هاستینگ شخصی خود برای وبسایت استفاده میکنید، میتوانید فایل را با استفاده از cPanel به راحتی به دایرکتوری اصلی وبسایت خود آپلود کنید. برای انجام این کار، مراحل زیر را دنبال کنید:
- ورود به cPanel: ابتدا به حساب cPanel خود وارد شوید.
- انتخاب بخش File Manager: در صفحه اصلی cPanel، به بخش “File Manager” بروید.
- انتخاب دایرکتوری اصلی: در “File Manager”، دایرکتوری اصلی وبسایت خود را پیدا کرده و آن را باز کنید. معمولاً این دایرکتوری به نام “public_html” یا “www” شناخته میشود.
- بارگذاری فایل PHP: در دایرکتوری اصلی، بر روی دکمه “Upload” کلیک کنید و فایل PHP که منطق ربات شما را در خود دارد، انتخاب کرده و بارگذاری کنید.
- تنظیم وبهوک: پس از آپلود فایل، URL مربوطه را برای وبهوک تنظیم کنید تا تلگرام بتواند به این آدرس دسترسی پیدا کند و بهروزرسانیها را به ربات شما ارسال کند.
حالا ربات شما بهطور کامل بر روی سرور بارگذاری شده است و آماده دریافت درخواستها و ارسال پاسخها از طریق API تلگرام خواهد بود.
۵- تست ربات تلگرام
حالا وقت آن رسیده که ربات تلگرام جدید خود را تست کنید. پس از رفع برخی از اشکالات کد (چند علامت نقل قول از دست رفته و تجزیه اشتباه دادههای وضعیت آب و هوا از OpenWeatherMap)، ربات آب و هوای من بالا و در حال اجرا بود. من یک مکالمه خصوصی با رباتم آغاز کردم (که شناسه آن توسط BotFather به من داده میشود) و دستور وضعیت آب و هوا را تست کردم.
کاربرد ربات تلگرام
تلگرام به یکی از بهترین اپلیکیشنهای چت تبدیل شده است که توسط یک شبکه جهانی از افراد استفاده میشود. با توجه به محبوبیت زیاد این پلتفرم، هیجان زیادی برای استفاده از رباتها بهمنظور ارتقاء تجربه چت وجود دارد.
علاوه بر بهروزرسانیهای وضعیت آب و هوا، بهطور فنی میتوانید هر چیزی را که قادر به برنامهنویسی آن هستید، ایجاد کنید — این زیبایی APIها است. برای مثال، میتوانید رباتی بسازید که به هر تعداد API جالب متصل شود تا کارهایی مانند دریافت شخصیتها از دنیای Star Wars، دریافت کمیکهای مختلف XKCD، یا بازگرداندن نقلقولهای تصادفی از کانیه وست را انجام دهد. همچنین، ربات شما میتواند فراتر از عملیاتهای ساده GET برود، مانند تولید متن منحصر به فرد یا خلاصهسازی یادداشتهای چت با استفاده از APIهای LLM مانند OpenAI GPT-3، Bard یا Goose AI.
برخی از این استفادهها به راحتی قابل ادغام خواهند بود، در حالی که برخی دیگر نسبت به ربات ساده وضعیت آب و هوا کمی پیچیدهتر خواهند بود.
نتیجهگیری
در نهایت، ساخت ربات تلگرام با PHP یک راه ساده و مؤثر برای ایجاد رباتهای کارآمد و مفید است که میتوانند تعاملات خودکار با کاربران را مدیریت کنند. با استفاده از ابزارها و API تلگرام، شما قادر خواهید بود رباتهایی با قابلیتهای مختلف بسازید و آنها را به گونهای برنامهنویسی کنید که نیازهای خاص شما را برآورده کنند.
اگرچه این فرایند به راحتی قابل انجام است، اما برای استفاده در محیطهای واقعی و تولیدی، نیاز به بهینهسازی و رفع مشکلات احتمالی مانند ورودیهای غیرمنتظره و خرابی APIها خواهید داشت. با این حال، با توجه به سادگی و قدرت PHP در تعامل با APIها، برنامهنویسی ربات تلگرام میتواند تجربهای لذتبخش و آموزشی باشد که به شما امکان میدهد رباتهایی با قابلیتهای متنوع و کاربردی ایجاد کنید.
واقعا عالی بود. توضیحات ساده و روان بودند. ممنون از آموزش خوبتون
آموزش کاملا کاربردی بود. همه چیز خوب توضیح داده شده. ممنون