سلام دوستان؛
تو این مطلب میخوام کمی درباره ساخت ربات تلگرام توضیح بدم و از ساده ترین راه ساختش با زبان برنامه نویسی PHP بگم.
ما اینجا آموزش ساخت یه ربات ساده رو هم میگیم.
این مطلب هم بدرد حرفهای ها میخوره و هم مبتدی ها…
اگه حرفهای هستید، از عنوان اول بگذرید.
با من همراه باشید.
ربات های تلگرامی چطور ساخته شدهاند؟
ربات هایی که توی تلگرام می بینیم با روش های مختلفی ایجاد شدن.
یه عده از این رباتها با رباتساز ها ساخته شدن. بعضی از این رباتساز ها خودشون هم ربات هستن؛ بعضی ازشون رو هم ممکنه یه جورایی بشه گفت یه سامانه توی یه سایت هستن.
بعضی از رباتساز ها رایگان هستن و برخی پولی هستن.
و دستهی دیگهای از ربات ها برنامه نویسی شدن؛ یعنی یه برنامه نویس اون رو نوشته یا برای خودش یا برای یه شخص دیگه یا حتی برای یه شرکت یا…
یه ربات میتونه با زبان های برنامه نویسی مختلفی نوشته شده باشه.
اگه نمیدونی زبان برنامه نویسی چی هست، این لینک رو ببین.
بعضی از اونها با زبان برنامه نویسی پایتون نوشته شدن، بعضی با asp و بعضی با js و…
ولی بیشترشون با زبان برنامه نویسی PHP نوشته شدن! این طبیعی هست و در رابطه با وبسایت ها هم صدق میکنه.
ربات های تلگرامی و چه بسا ربات های سایر پلتفرم ها مثل بازوهای پیامرسان بله با استفاده از API ها (Application Programming Interface) کار میکنن.
بهطور کلی به مجموعهای از توابع و رویهها که به برنامههای کاربردی دیگر اجازه دسترسی و استفاده از ویژگیها یا دادههای یک نرمافزار را میدهند، ایپیآیهای آن نرمافزار گفته میشود.
تلگرام هم یه API داره؛ میشه گفت ما یه هاست یا سرور داریم که به وسیله Api با رباتی که توی تلگرام داریم ارتباط برقرار میکنه.
وقتی کاربر پیامی توی ربات ارسال میکنه، تلگرام اون رو به سرور ما میفرسته؛ و سرور ما پردازش میکنه پیام کاربر رو و بعد از اینکه پاسخ مناسب رو پیدا کرد، اون رو برای تلگرام میفرسته و تلگرام اون رو به کاربر نشون میده.
همش همینه!
شروع ساخت ربات با PHP
برای ساخت ربات های بزرگ و پیچیده مسلما نیازه بتونید با php برنامه نویسی کنید. ولی خب ما اینجا آموزش ساخت یه ربات خیلی ساده رو میاریم.
هر سوالی بود توی نظرات مطرح کنید، خوشحال میشم و سعی میکنم سریع جواب بدم.
ساخت ربات در Bot Father
شما باید ابتدا از طریق ربات رسمی بات فادر که کارش ساخت ربات هست، یه ربات بسازید.
توجه: صرفا یه ربات میسازه؛ یه ربات بدون هیچ عملکردی!
شما باید توکن رباتتون رو داشته باشید برای ادامه فرایند.
وارد آموزش های زیادی پایه نمیشیم؛ چون اولا تو اینترنت زیاد هستن آموزش ها و ثانیا آموزششون کار من نیست و یه جورایی اتلاف وقت هست.
آمادهسازی هاست یا سرور
خب دوستان؛ شما نیاز به یه هاست یا سرور دارید.
برای یه ربات معمولی نیازی به سرور نیست!
میتونید یه هاست پولی (هزینه زیادی نداره) یا که یه هاست مجانی تهیه کنید.
راهنمایی: هاست های ابری هزینه کمی در قبال منابع کم دارن؛ این هاست ها خیلی برای ربات های تلگرام مناسب هستن.
اینم یادتون باشه که طبیعتا به یه دامنه هم نیاز دارید که همون ir هم باشه مشکلی نیست. این دامنه روی هاستتون ست شده باشه.(ممکنه ساعاتی طول بکشه تا dns های دامنه ir جوری که باید ست بشن)
نکته مهم اول: مهمه که بدونید هاست شما باید دارای SSL باشه. اگه نمیدونید SSL چیه، قبلش یه سرچ راجع بهش بکنید. ولی در کل فقط یه گواهی الکترونیک هست برای رمزنگاری. توی اطلاعات هاستی که میخواید بخرید ببینید SSL نوشته یا نه.
نکته مهم دوم: خب تو این لحظه که تلگرام توی ایران در دسترس نیست*، پس اگه بخواید باهاش مرتبط بشید یا باید از پروکسی استفاده کنید برای API (که من توصیه نمیکنم) یا باید هاست اروپا گرفته باشید.(یا هر هاست خارج از ایران)
تنظیم وبهوک
اسمش گندست ولی چیز پیچیدهای نیست!
وب+هوک
یه جور گره زدن هاست به ربات هست.(با API)
خب من توصیه میکنم برای راحتی خودتون و من که نخوام اینجا نحوه وبهوک رو توضیح بدم، از رباتهای «ست وبهوک» آماده استفاده کنید.
کافیه توی تلگرام جستجو کنید وبهوک!
به طور کلی ست کردن(تنظیم کردن) وبهوک دو تا پارامتر میخواد. یکی توکن و یکی هم آدرس هاست شما.
آدرس هاست رو این شکلی بدید؛ مثال:
https://example.ir/bot.php
جای example.ir باید دامنه خودتون رو بنویسید.
فایل bot.php توی آدرس هم بعدا قراره فایل وبهوک شما باشه.
اگه توی جزئیات این فرایند ها به مشکل خوردید، توی نظرات زیر این پست مشکلتون رو بگید یا توی کامنت های زیر پست های کانال تلگرامم مشکلتون رو مطرح کنید.
تلگرام:
خب؛ اگه وبهوک موفقیتآمیز بود، بریم ادامه فرایند.
شروع نوشتن کدها
شما باید برای راحتی ارتباط با API از یه کتابخونه(متشکل از یه کلاس) استفاده کنید.
لینک دانلودش رو اینجا براتون میگذارم:
لینک صفحه این class توی گیتهاب:
___ ___ ___
در واقع دو تا فایل php هستن که باید کنار همدیگه باشن. یکیش فرعی هست و کارش لاگ گرفتن به وقت خطاست.
پس تا این لحظه ما توی هاستمون دو تا فایل php داریم که مربوط به این class هستن.
حالا یه فایل جدید بسازید به اسم bot.php که البته توی بخش آدرس وبهوک بهش اشاره کردیم.
توی فایل bot.php بنویسید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php include 'Telegram.php'; #config global $token; global $t; $token = '6900000004:AAHHHHHHHHHH3kmOQ5rp9cV_DDDDDGxLFQY'; $t = new Telegram($token); #vars global $mid; $cid = $t->ChatID(); $text = $t->Text(); $mid = $t->MessageID(); $uid = $t->UserID(); $unam = $t->Username(); $nam = $t->FirstName() . $t->LastName(); #send message $content = array('chat_id' => $cid, 'text' => 'Hello World!'); $t->sendMessage($content); |
همونطور که مشخص هست، اول class رو فراخوانی کردیم؛ دلیل اینکه فایل دوم رو فراخوانی نکردیم این هست که فایل دوم(لاگر) در همین فایل اول class فراخوانی شده. بگذریم!
بعد دو تا متغیر عمومی(global) تعریف کردیم. برای این به شکل گلوبال تعریف شدن تا در همه جای برنامه حتی در توابع به راحتی بهشون دسترسی پیدا کنیم، چون خیلی زیاد ممکنه استفاده بشن.
یکی متغیر توکن هست و یکی متغیر شئ کلاس ما!
توکنی که از بات فادر گرفتید رو باید توی متغیر token جای گذاری کنید.
بعد یه سری متغیر های دیگه تعریف کردیم که مقدارشون از API دریافت شده. مثل شناسه چت، متن پیام دریافتی، شناسه پیام دریافتی، شناسه کاربر، نام کاربری کاربر و نام کامل کاربر.
توی خطوط پایانی هم یه پیام به این کاربر(این چت) ارسال کردیم؛ عبارت Hello World! رو براش فرستادیم.
وقتی یه کاربر تو ربات شما پیام میفرسته، این کد ها اجرا میشن و یه پیام در پاسخش ارسال میشه. این خلاصه کارش هست.
شما میتونید ربات های پیچیده تر هم بسازید. کافیه به داکیومنتیشن این کتابخونه مراجعه کنید.
سوالی بود، من در خدمتم!
احسنت