آموزش ساخت ربات تلگرام جهت مشاهده قیمت دلار + PHP

مقدمه:شاید براتون جالب باشه که چجوری میشه ربات تلگرامی ساخت که ما بهش پیغام بدیم و اون ربات قیمت دلار رو به صورت آنلاین برامون برگردونه.ایده ای در دنیای کامپیوتر وجود داره که میگه: هر کار تکراری که در طول شبانه روز انجام میشه رو میتوان و باید به کد تبدیل کرد. حالا منظور چیه؟! منظور اینه که ما همواره برای مشاهده قیمت دلار مرورگر رو باز میکنیم، سرچ میکنیم "قیمت دلار" و بعد در اولین سایت نمایش داده شده قیمت دلار را مشاهده میکنیم. بله!! این یک کار تکراریه که میتوان اونو به کد تبدیلش کرد و کار رو ساده تر انجام بدیم، یعنی وارد تلگرام بشیم و به ربات ساخته شده پیغامی بفرستیم و ربات خودش بره قیمت رو لابه لای کد های HTML پیدا کنه و برامون ارسال کنه. پس بریم که ببینیم این کار چجوری صورت میگیره. برای ساخت ربات تلگرام به چه چیزهایی نیاز داریم؟1- شناخت زبان برنامه نویسی PHP2- دامنه (لازم نیست هزینه زیادی برای دامنه های com یا ... بدید و با دامنه های ir هم میتونید ربات رو به کار بندازید.)3- هاست خارج از کشور (برای خرید هاست از سایت پارس پک استفاده کنید چون به دلیل داشتن پلن های متفاوت برای هاست، میتونید هاست ارزون قیمت پیدا کنید و کارتون راه بیوفته. راستی، به دلیل فیلترینگ هاست شما باید خارج از کشور باشه که اونم پارس پک داره.)4- هاست شما باید ssl هم داشته باشه که اگه هاستتون رو از پارس پک تهیه کنید ssl رایگان در اختیارتون میزاره.5- و مشخصا یک اکانت تلگرام هم نیاز دارید.نکته مهم: بنده اسپانسر پارس پک نیستم و فقط به دلیل هزینه های پایینش به شما پیشنهاد میکنم و اگه هاست بهتری سراغ داشتید زیر همین پست با بنده به اشتراک بزارید.خب حالا که مواد اولیه رو گفتیم بریم سراغ کار اصلیمون...ابتدا وارد تگرام بشید و @botfather رو سرچ کنید.برروی گزینه newbot کلیک کنید تا ربات شما ساخته شود.1- بعد از انجام دستور newbot، تلگرام از شما نام ربات رو میخواد. که ما اینجا "mobinabcdefgbot" رو برای رباتمون انتخاب کردیم.2- در مرحله بعد تلگرام آیدی ربات شمارو میخواد که یک نام دلخواه است. ( البته بعد از نام ربات باید از کلمه bot استفاده شود.)3- بعد از انجام دادن این کارها، تلگرام به شما یک token میدهد که برای ارتباط سرور شما با ربات است. این توکن یک API بین سرور و ربات است. بعد از ساخت ربات، باید اون رو به وبسایت خودتون متصل کنید. برای انجام این کار، تلگرام یک دستوری داره به نام setwebhook. دستور رو به صورت زیر استفاده کنید.دستور رو به صورت بالا در مرورگر خود اجرا کنید.آدرس وارد شده از سه قسمت تشکیل شده است. قمست اول جزء ثابت است و باید همیشه به همین منوال باشد.جزء دوم همان token به دست آمده از مرحله قبل است. جزء سوم هم همان دامنه سایت شماست که قرار است ربات اطلاعات را به آن بفرستد و اطلاعات در آنجا پردازش شود و پاسخ برگردد. بعد از وارد کردن آدرس سایت و token خود، اگر کار را به درستی انجام داده باشید با پیغام "Webhook was set" مواجه می‌شوید.برای جلوگیری از اشتباه، آدرسی که باید از اون استفاده کنید رو در زیر براتون قرار میدم.https://api.telegram.org/botTOKEN/setwebhook?url=WEBSITE_ADDRESSنکته: به جای TOKEN و WEBSITE_ADDRESS در بالا، token و آدرس وبسایت خودتون رو وارد کنید.خب تا اینجای کار، بعد از ارسال هر پیغام به ربات ما، ربات اون پیغام رو به وبسایت ما ارسال میکند. پس لازمه بریم و در کد نویسی وبسایتمون پیغام رو از ربات دریافت کنیم و کاری رو که دوست داریم باهاش انجام بدیم.$botToken = &quotyourToken Telegram&quot $webSite = &quothttps://api.telegram.org/bot&quot . $botToken;دو متغیر تعریف میکنیم به نام های $botToken و $webSite که در اولی باید token ربات رو وارد کنیم و در متغیر دوم هم که با token وارد شده در متغیر اول یک url ساخته می‌‌شود که همان url ربات ماست که باید ازش پیغام هارو دریافت کنیم.$update = file_get_contents(&quotphp://input&quot); $update = json_decode($update, TRUE);در خط اول دستور file_get_contents یک دستور برای دریافت صفحات وبسایت است. با این دستور شما میتوانید صفحات وبسایت هارو دریافت کنید. که ما در اینجا به ربات وصل میشیم و اطلاعات رو در قالب json دریافت میکنیم.در خط دوم فایل json دریافتی رو واکشی و قسمت update اون که مربوط به اطلاعات پیام و کاربر میشه رو جدا میکنیم.$chatId = $update[&quotmessage&quot][&quotchat&quot][&quotid&quot]; $message = $update[&quotmessage&quot][&quottext&quot];در متغیر $update به دست آمده در قسمت بالایی، تمام پارامترهایی که مربوط به پیغام دهنده است قرار دارد. پارامترهایی که در این برنامه نیاز است chatId و message است که به صورت بالا، آن هارا به دست میاوریم.$result = file_get_contents(&quothttps://www.tgju.org/%D9%82%DB%8C%D9%85%D8%AA-%D8%AF%D9%84%D8%A7%D8%B1&quot);در قطعه کد بالایی ما به سایت www.tgju.org متصل می‌شویم که قیمت دلار را به صورت آنلاین نمایش می‌دهد. و با استفاده دستور file_get_contents که قبلا با آن آشنا شدیم، صفحه رو دریافت می‌کنیم.بعد از دریافت صفحه در متغیر $result فایل های HTML وبسایت www.tgju.org قرار می‌گیرند و ما باید برای برگرداندن قیمت دلار، آن را فیلتر کنیم و قسمت مورد استفاده خودمان که همان قیمت دلار است برگردانیم. برای این کار از سه تابع معروف PHP به نام های explode و preg_match و preg_replace استفاده می‌کنیم.تابع explode: برای نادیده گرفتن کارکتری مشخص در یک متن است.تابع preg_match: برای یافتن عبارتی در یک متن است.تابع preg_replace: برای یافتن یک عبارت و جایگزینی آن با عبارتی دیگر در یک متن است.$row = explode(&quot\n&quot, $result); $near=false; foreach ($row as $value) { if($near==true&&preg_match('/<span class=&quotinfo-value&quot><span class=&quotinfo-price&quot>/',$value)) { $data=preg_replace('/<span class=&quotinfo-value&quot><span class=&quotinfo-price&quot>/',null,$value); $data=preg_replace('/<\/span> <span class=&quotinfo-change&quot>/',&quot &quot,$data); $data=preg_replace('/<\/span><\/span>/',&quot &quot,$data); $data=&quotقیمت دلار &quot.$data.&quot تومان&quot sendMessage($chatId,$data); } else{ $near=false; } if (preg_match('/<strong>دلار<\/strong>/',$value)) { $near=true; } }با این چند خط، کدهای HTML اضافی را حذف خواهیم کرد و قیمت دلار که مد نظر ما هست رو جدا خواهیم کرد.کد رو میتونید داخل گیت هاب بنده مشاهده کنید.اگر جایی رو بد توضیح داده بودم بپرسید که صد در صد جواب خواهم داد.موفق و پیروز باشید 20 نمره