خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش ساخت ربات با php - به صورت گام به گام

آموزش ساخت ربات با php - به صورت گام به گام
در این مقاله به آموزش ساخت ربات با php می پردازیم. برای اینکه یک ربات تلگرام با زبان برنامه نویسی PHP بسازیم، لازم است که یک سری مقدمات را از پیش آماده کنیم. همچنین توجه داشته باشید که مفروض ما در این آموزش این است که مخاطب این مقاله با چگونگی ساخت اکانت تلگرام و همچنین انجام کارهای معمول در تلگرام آشنایی دارد. همچنین فرض می گیریم که با زبان برنامه نویسی PHP نیز آشنایی نسبی داشته باشد، پر واضح است که هر چقدر میزان تسلط شما بر زبان برنامه نویسی PHP بیشتر باشد، کارهایی بیشتری را می توانید انجام دهید و در ضمن کارهای معمول را نیز بسیار ساده تر انجام خواهید داد.

بد نیست برای شروع کمی در ارتباط با قابلیت های ربات های تلگرام بیشتر بدانید. ربات ها می توانند به صورت اتوماتیک سوالات کاربران تلگرام را پاسخ دهند. در واقع ربات تلگرام در یک محیط چت با کاربر در ارتباط می باشد و دستوراتی را در قالب متن های از پیش برنامه ریزی شده، از کاربر دریافت می کند. همچنین امکان دریافت پارامترهای مختلف از کاربر وجود دارد، این پارامترها می توانند به عنوان متن جستجو به پایگاه دادۀ شما ارسال گردند و سپس نسبت به هر کدام از آن متن ها، پردازش های خاصی انجام شود و به عنوان خروجی دستور به کاربر نهایی ارسال گردد. اگر میزان تسلط خوبی بر زبان برنامه نویسی PHP داشته باشید، و همچنین ایدۀ خوبی برای ساخت ربات تلگرام داشته باشید، با ترکیب این دو دانش می توانید یک غول چراغ جادوی زیبا و همه پسند بسازید که در نتیجۀ آن باعث شوید که به کاربرها حس علاءالدین بودن دست بدهد و ربات شما مطلوبشان واقع گردد. اگر با خواندن این مقاله مشتاق شدید که دانش تان در ارتباط با زبان برنامه نویسی PHP را ارتقاء دهید، می توانید به کمک آموزش برنامه نویسی PHP به این هدف نائل شوید:


آموزش ساخت ربات تلگرام


برای شروع لازم است که ابتدا یک ربات در تلگرام بسازید و سپس به کمک واسط های برنامه نویسی که تلگرام در اختیار شما قرار داده است، آن ربات را برنامه ریزی نمایید. برای ساخت ربات تلگرام باید با BotFather این کار را انجام دهید. BotFather در واقع خودش یک ربات است که توسط تلگرام به منظور ایجاد ربات های جدید برنامه ریزی شده است. با دستور \(\text{/newbot}\) می توانید یک ربات جدید ایجاد نمایید. بعد از وارد کردن این دستور در BotFather ، از شما نام رباتتان پرسیده می شود. توجه داشته باشید که در قوانین نام گذاری ربات ها، اشاره شده است که الزاماً نام ربات شما باید به واژۀ bot ختم شود. بعد از اینکه ربات خود را به کمک BotFather ایجاد کردید. مشابه تصویر زیر یک کلید در اختیار شما قرار می دهد. این کلید را در هنگام برنامه نویسی مورد استفاده قرار خواهید داد. همچنین ذکر این نکته ضرورت دارد که کاربردهای BotFather محدود به همین یکی دو موردی که اینجا اشاره کردیم نمی شود و بسیار وسیع تر از اینست. منتهی برای آموزش ساخت ربات با php همین میزان کفایت می کند.

آموزش ساخت ربات با php

روش های مختلف ساخت ربات با php


تا اینجای کار یک سری اطلاعات مقدماتی در مورد ربات ها را دانستید و همچنین چگونگی ایجاد ربات در تلگرام را نیز متوجه شدید. برای ادامۀ این آموزش ابتدا می خواهم یک مقدمه چینی داشته باشم. برای ساخت ربات با php دو روش کلی وجود دارد. روش اول اینست که به سایت تلگرام مراجعه کنید و بر اساس مستنداتی که آنجا ارائه شده است، گام به گام ربات تلگرام خود را بسازید و سپس با زبان برنامه نویسی PHP قابلیت های آن را توسعه بدهید. اما این تنها روش ممکن نیست و روش دوم و ساده تری هم وجود دارد و آن استفاده از یک سری ابزارهای از پیش طراحی شده و آماده است که بخش مهمی از کار را برای شما انجام داده اند و در واقع یک لقمۀ آماده را تقدیم شما کرده اند. در این آموزش ما نیازی نمی بینیم که چرخ را از نو اختراع کنیم و بنابراین به معرفی یکی از این ابزارهای آماده، یا بهتر است بگوییم نیمه آماده، می پردازیم. ابزاری که در اینجا با آن به ساخت ربات با PHP خواهیم پرداخت، TelegramBotPHP می باشد. این ابزار کاملاً منبع باز می باشد و می توانید از این لینک در سایت گیت هاب (GitHub) هم خود این ابزار را دانلود کنید و هم اگر تمایل داشته باشید، به صورت مستقیم با برنامه نویس ها و سایر کسانی که در ایجاد آن نقش داشته اند در ارتباط باشید.

وقتی طبق آموزش ساخت ربات با php، وارد مراحل ساخت ربات می شوید، به احتمال بسیار زیاد و شاید بهتر است بگوییم قطع به یقین برای شما پیش خواهد آمد که نیاز با ذخیره سازی داده ها و بازیابی آن ها با PHP پیدا کنید. از آنجا که بهینه ترین بانک اطلاعاتی برای PHP، پایگاه دادۀ MySQL می باشد، اگر در این زمینه دانش کافی ندارید، ضرورت دارد که خودتان را به این ابزار مجهز کنید. در همین راستا آموزش کار با AJAX در PHP و MySQL می تواند نوش داروی این مشکل باشد.


آموزش ساخت ربات با php به کمک ابزار TelegramBotPHP


ابزار TelegramBotPHP یک ابزار ساده و در عین حال قدرتمند است که به کمک آن می توانید به سادگی ربات تلگرام بسازید. یکی از مزیت های عالی این ابزار اینست که همزمان با بروز رسانی های تلگرام، با توجه به قابلیت های جدید تلگرام، این ابزار نیز مدام به روز رسانی می گردد. هر گاه که واسط برنامه نویسی ربات های تلگرام که با نام Bot API شناخته می شود، تغییر کند، متعاقب آن این ابزار نیز بروز می گردد. البته توجه داشته باشید که از آنجا که API ها به عنوان پروتکل های ارتباطی بین برنامه نویس ها مورد استفاده قرار می گیرند، تغییرات آن ها بسیار به ندرت صورت می پذیرد و در عین حال در صورت ارتقاء، طوری برنامه نویسی می گردند که پروتکل های قبلی به درستی کار کنند. اما با وجود این گاه به گاه پیش می آید که به دلیل تغییرات زیر ساختی و بنیادین و یا امنیتی، به ناچار این واسط های برنامه نویسی را بازنویسی می کنند یا تغییرات عمده ای را در آن می دهند که به ناچار باید کدهای شما نیز متناسب با آن تغییر کنند.

ابزار TelegramBotPHP با نسخه های بالاتر از \(5.3\) در PHP کار می کند و لازم است که این موضوع را لحاظ کنید. همچنین افزونۀ Curl extension را نیز باید در PHP فعال کرده باشید. علاوه بر آن لازم است کلیدی را که تلگرام در هنگام ساخت ربات به کمک BotFather در اختیار شما قرار می دهد، جهت برنامه نویسی در دسترس داشته باشید. یک نکتۀ مهم که برخی از آن غافل می شوند و بعد به مشکل می خورند اینست که آدرس دامنه ای که برای برنامه نویسی مورد استفاده قرار می دهید، الزاماً باید مجهز به پروتکل امنیتی SSL باشد. البته اگر نمی خواهید هزینه کنید و SSL بخرید، می توانید به کمک سرویس های رایگان ارائه SSL همچون Cloudflare's Free Flexible SSL این کار را انجام دهید.

برای نصب TelegramBotPHP دو روش کلی در اختیار دارید. یکی اینست که به کمک composer این کار را انجام دهید و دیگری این که مستقیماً با استفاده از git آن را نصب کنید. در ادامه هر دوی این روش ها را می بینید.

برای نصب ابزار TelegramBotPHP به کمک composer دستور زیر را اجرا کنید:
composer require eleirbag89/telegrambotphp
و یا اینکه دستور زیر را اجرا نمایید:
php composer.phar require eleirbag89/telegrambotphp

اگر هم مایلید که مستقیماً از خود git این کار را انجام دهید، از داخل پوشه ای که پروژۀ شما در آن قرار دارد، دستور زیر را اجرا کنید.
git clone https://github.com/Eleirbag89/TelegramBotPHP.git

بعد از اینکه ابزار TelegramBotPHP را نصب کردید. باید در داخل کدهای PHP به آن ارجاع دهید. قطعه کد زیر را در برنامۀ تان اضافه کنید. توجه داشته باشید که در قسمت YOUR TELEGRAM TOKEN HERE باید کلیدی را که PHPBotFather به شما داده است، قرار دهید.
include (__DIR__ . '/vendor/autoload.php');
$telegram = new Telegram('YOUR TELEGRAM TOKEN HERE');

در این قسمت از آموزش ساخت ربات با php می خواهم منبع آموزشی دیگری را نیز به شما معرفی کنم که در طول یک دورۀ آموزشی با نام آموزش مقدماتی ساخت ربات تلگرام با PHP با جزییات بیشتری به همین موضوع پرداخته است.


در این مرحله از کار لازم است که رفرنسی با فایل \(\text{Telegram.php}\) بدهید و آن را در اسکریپت های PHP تان بگنجانید.

include 'Telegram.php';
$telegram = new Telegram('YOUR TELEGRAM TOKEN HERE');

در ادامه قطعه کد مثالی برای متصل شدن به یک چت خاص با کاربری خاص را می بینید:

$telegram = new Telegram('YOUR TELEGRAM TOKEN HERE');
$chat_id = $telegram->ChatID();
$content = array('chat_id' => $chat_id, 'text' => 'Test');
$telegram->sendMessage($content);

اگر می خواهید پارامتر خاصی را از پاسخ های تلگرام دریافت کنید، از مثال زیر استفاده کنید:
$telegram = new Telegram('YOUR TELEGRAM TOKEN HERE');
$result = $telegram->getData();
$text = $result['message'] ['text'];
$chat_id = $result['message'] ['chat']['id'];
$content = array('chat_id' => $chat_id, 'text' => 'Test');
$telegram->sendMessage($content);

اگر می خواهید تصویر یا فایل خاصی را آپلو کنید و آن را همراه با CurlFile بار گذاری نمایید، از قطعه کد زیر استفاده کنید:
// 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');

برای اینکه مدام از وضعیت چت مطلع باشید، می توانید مشابه کد زیر عمل کنید و این عملیات را در داخل یک حلقه صورت دهید.
$telegram = new Telegram('YOUR TELEGRAM TOKEN HERE');
$req = $telegram->getUpdates();
for ($i = 0; $i < $telegram-> UpdateCount(); $i++) {
// You NEED to call serveUpdate before accessing the values of message in Telegram Class
$telegram->serveUpdate($i);
$text = $telegram->Text();
$chat_id = $telegram->ChatID();

if ($text == '/start') {
$reply = 'Working';
$content = array('chat_id' => $chat_id, 'text' => $reply);
$telegram->sendMessage($content);
}
// DO OTHER STUFF
}

اگر دقت کرده باشید، در ربات های تلگرام یک سری صفحه کلیدهای از پیش آماده شده وجود دارد که به واسطۀ آنها کاربران ساده تر با ربات چت می کنند. اگر می خواهید شما هم چنین صفحه کلیدی را در رباتتان داشته باشید، می توانید از کد زیر استفاده کنید.
$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);
هر گاه که کاربری بر روی یکی از این دکمه های صفحه کلید، کلیک می کند، متن آن به ربات باز گردانده می شود. اما گاهی لازم می شود که علاوه بر آن متن، پارامتری را نیز از کاربر دریافت کنید. به عنوان مثال فرض کنید که شما رباتی نوشته اید که کاربر توسط یک نام که به شما می دهد در میان یک پایگاه دادۀ موسیقی جستجو می کند و در نتیجه فایل موسیقی را به عنوان خروجی به او می دهید. در این صورت کد زیر می توانید این نوع پارامترها را مدیریت کند.
$option = array(
//First row
array($telegram->buildInlineKeyBoardButton("Button 1", $url="http://link1.com"), $telegram->buildInlineKeyBoardButton("Button 2", $url="http://link2.com")),
//Second row
array($telegram->buildInlineKeyBoardButton("Button 3", $url="http://link3.com"), $telegram->buildInlineKeyBoardButton("Button 4", $url="http://link4.com"), $telegram->buildInlineKeyBoardButton("Button 5", $url="http://link5.com")),
//Third row
array($telegram->buildInlineKeyBoardButton("Button 6", $url="http://link6.com")) );
$keyb = $telegram->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'reply_markup' => $keyb, 'text' => "This is a Keyboard Test");
$telegram->sendMessage($content);

تا اینجای آموزش ساخت ربات با php، نکات ریز و درشت فراوانی را در ارتباط با ساخت ربات به کمک ابزار TelegramBotPHP دانستید. اگر می خواهید در حوزۀ برنامه نویسی PHP پیشرفت کنید و به سطوح بالاتری بروید، می توانید از آموزش پروژه محور PHP - ساخت موتور جستجو برای وب سایت کمک بگیرید.

در طول این مقاله، شما را با چگونگی ساخت ربات با زبان برنامه نویسی php آشنا ساختیم و در این کار از ابزار TelegramBotPHP استفاده نمودیم. همچنین اشاره کردیم که به کمک واسط های برنامه نویسی ارائه شده توسط خود تلگرام نیز می توانید این کار را انجام دهید. البته دلیل اینکه به واسط های برنامه نویسی تلگرام اشاره نکردیم این بود که کدنویسی آن ها دارای پیچیدگی های بیشتری می باشد. با این وجود اگر تمایل دارید که خیلی دقیق عمل کنید و کاملاً مطابق با API تلگرام و پیشنهادات ارائه شده توسط آن پیش بروید، باز هم پروژۀ معرفی شده در این آموزش به کار شما خواهد آمد. در این صورت، با توجه به منبع باز بودن این پروژه، می توانید از کدهای آن به عنوان نمونه کدی جهت برقراری ارتباط با واسط های برنامه نویسی تلگرام استفاده کنید. کافیست کدهای ابزار TelegramBotPHPرا از گیت هاب آن که لینکش در طول مقاله آمد دانلود کنید و یک مثال ارزشمند را در اختیار داشته باشد.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز