آموزش ساخت ربات تلگرام در بات فادر BotFather
بات فادر (Bot Father) که میشه بهش پدر رباتها هم گفت، خودش یه ربات داخل تلگرامه که میتونید با اکانت خودتون بهش پیام بدید. شما با استفاده از این ربات، اکانت یا حساب مربوط به ربات خودتون رو ایجاد میکنید و در نهایت یک توکن (Token) که در ادامه میگیم چی هست رو بهعنوان کلیدی جهت دسترسی به ربات خودتون دریافت میکنید. بعد از ایجاد اکانت ربات میتونید یک سری تنظیمات اساسیِ مربوط به حساب ربات خودتون مثل نام ربات، تصویر پروفایل و ... رو از طریق بات فادر انجام بدید ولی توجه داشته باشید که بات فادر منطق ربات شما رو شامل نمیشه و در واقع اگه شما وارد پی وی ربات خودتون بشید، هیچ واکنشی بهتون نمیده.
ربات تلگرام
تلگرام سیستم یکپارچهای رو برای ساخت ربات در نظر گرفته که تو این سیستم، اکانتها یا حسابهایی که مربوط به ربات هستند، از اکانتهای حقیقی جدا بشن. بعلاوه اینکه حسابهای مربوط به رباتها دارای ویژگیهایی هستند که اکانتهای حقیقی فاقد این ویژگیهان. البته حسابهای مختص رباتها هم برخی از ویژگیهای مربوط به اکانتهای حقیقی رو ندارن.
تفاوت حساب حقیقی و حساب رباتها در تلگرام
بیایید از ابتدا شروع کنیم. شما هرروز با اکانت خودتون با دیگران چت میکنید؛ شما یک شخص حقیقی هستیند که اون اکانت یا حساب کاربری رو کنترل میکنه. ولی حالا تصور کنید بهجای شما، یک ربات فیزیکی گوشی بهدست در حال چت کردن با بقیه هست! درسته حالا این میشه یک ربات که در حال استفاده از یک اکانت تلگرامیه! اینجا یک ربات فیزیکی در حال کار با یک حساب تلگرامیه؛ اما تصور کنید که رباتِ ما فیزیکی نباشه و بهصورت نرمافزاری داخل همون گوشی بتونه با حساب ما و با بقیه تعامل برقرار کنه! خب طبیعتا زمانی که بهصورت نرمافزاری باشه، سرعت و پتانسیلِ حالت نرمافزاری رو داره؛ اما از طرفی یک مشکل دیگهای وجود داره و اون هم اینه که حسابِ مربوط به ربات، هیچ تفاوتی با حساب یک انسان حقیقی نداره!
حالا تلگرام برای حل این مشکل، نوعی از حسابها یا اکانتهایی رو ایجاد کرده که مختص رباتها باشه و علاوهبر اکثر قابلیتهای یک اکانت حقیقی، برخی قابلیتهای دیگهای رو داشته باشه که مختص رباتها هستن و یک انسان حقیقی به اونها نیازی نداره. البته برخی از قابلیتها هم بهتره در اختیار یک اکانت ربات وجود نداشته باشه. مزیتهای این جداسازی زیاده؛ از جمله اینکه نیازی نیست برای ساخت یک اکانت ربات، حتما از یک شماره واقعی استفاده بشه! و همچنین توجه داشته باشید که استفاده از این نوع اکانتها که مختص رباتها هستن، به معنی این نیست که شما دیگه نتونید از حسابهای حقیقی برای ساخت ربات استفاده کنید. گرچه فرآیند توسعهی این دو مدل متفاوت هستند و معمولا رباتهای تلگرام با همین اکانتهای ربات ساخته میشن چون استفاده ازشون راحتتره و پیادهسازیشون مثل حالت استفاده از اکانت حقیقی چندان پیچیده نیست؛ از طرفی تلگرام هم مستندات قدرتمندی رو برای ساخت ربات با استفاده از اکانت رباتها در اختیار توسعهدهندگان قرار داده.
استارت ربات تلگرامی چیست؟
به محض ورود به حسابهای مربوط به رباتهای تلگرامی، در انتهای صفحه یک گزینه به نام START بهجای بخش یا فیلدِ نوشتن پیام جدید قرار داره (در ادامه موقع استفاده از بات فادر مشاهده خواهید کرد). با انتخاب این دکمه، یک پیام از سمت شما با متن start/ برای ربات ارسال میشه. در واقع تلگرام این رو بهعنوان پیامِ پیشفرض در نظر گرفته و زمانی که شما برای اولین بار وارد یک ربات بشید و یا اینکه ربات رو حذف کرده و مجدد وارد بشید، چنین گزینهای ظاهر میشه. البته گاهی این گزینه به RESTART تغییر میکنه، اما با کلیک برروی اون مجدد همون پیام start/ به ربات ارسال میشه.
دستورات ربات تلگرامی چیست؟
تلگرام الگویی رو برای دستورات رباتهای تلگرامی در نظر گرفته که از طریق بات فادر قابل تعریف هستند. این دستورات در کنار بخش مربوط به نوشتن پیام جدید ظاهر میشن (در ادامه خواهیم دید). موقعی که شما ربات رو استارت میکنید، پیام start/ ارسال میشه که در واقع این از ساختار تعیین شده توسط تلگرام برای دستورات پیروی میکنه. دستورات با علامت / شروع میشن و چیز خاصی راجب اونها وجود نداره و هر سازنده رباتی میتونه دستورات اختصاصی خودش رو از بات فادر برای ربات تعیین کنه تا این دستورات در کنار بخش نوشتن پیام جدید قابل انتخاب باشند. البته هیچ الزامی نیست که از این سیستم برای دستورات ربات استفاده بشه.
توکن ربات تلگرام چیست؟
توکِن ربات تلگرام، یک رشته یا عبارتیه که مثل یک جور کلیده و از این رشته برای لاگین کردن یا ورود و دسترسی به ربات استفاده میشه. در زیر یک توکن نمونه رو مشاهده میکنید:
6859790514:AAGXNsV5G1KBejyWaxQLkxp1wn5sST70PP0
بقیه توکنها هم دقیقا همین ساختار رو دارند. بخش اول توکن، آیدی عددی ربات هست و بخش دوم که بعد از علامت دو نقطه قرار گرفته، در واقع پسورد، رمزعبور و یا کلید ربات شما هست.
بات فادر (Bot Father) در تلگرام
بات فادر یا ربات پدر، در واقع یک حساب داخل تلگرامه که خودش یک اکانت از نوع رباته. بات فادر رو میشه مثل آدم و حوا برای انسانهای امروزی در نظر گرفت. این ربات به حسابهای حقیقی کمک میکنه تا بتونن حسابهای رباتی بسازن! در واقع شما با استفاده از بات فادر میتونید حساب یا اکانت ربات ایجاد کنید.
توجه داسته باشید که بات فادر فقط و فقط برای ساخت حساب یا اکانت ربات هستش و تنها یک سری تنظیمات اولیه رو برای اکانت اعمال میکنه؛ در نتیجه تنها با ایجاد حساب/اکانت ربات انتظار نداشته باشید که اون ربات بتونه کار کنه و به شما واکنشی نشون بده. برای اینکه یه ربات کار کنه باید منطق اون برنامهنویسی شده باشه و سپس نرمافزار مربوط به این ربات در محیطی که براش توسعه داده شده اجرا و توکنِ ربات برروی اون تنظیم بشه تا بتونه تعامل داشته باشه. البته شما میتونید از سورسکدها و اسکریپتهای اشخاص دیگهای استفاده کنید؛ برای مثال در هرمینال بخشی قرار داره که ما سورسکدها و اسکریپتهایی که میسازیم رو قرار میدیم. «اسکریپت ربات تلگرام»
ورود به بات فادر
وارد حساب تلگرامی خودتون بشید. سپس برای ورود به بات فادر جهت ایجاد و مدیریت اکانت ربات تلگرامی، باید وارد آیدی BotFather@ بشید. فقط کافیه تا BotFather رو از بخش جستجوی تلگرام سرچ کنید. در نهایت بعد از ورود به بات فادر، با صحنهی زیر روبرو میشید:
اکنون برای ادامه کار، کافیه که برروی START در انتهای صفحه کلیک کنید. با کلیک برروی استارت مشاهده میکنید که یک پیام از طرف شما با متن start/ به بات فادر ارسال میشه! سپس بات فادر بلافاصله یه پیامی رو برای شما ارسال میکنه که به صورت زیر هستش:
I can help you create and manage Telegram bots. If you’re new to the Bot API, please see the manual (https://core.telegram.org/bots).
You can control me by sending these commands:
/newbot – create a new bot
/mybots – edit your bots
Edit Bots
/setname – change a bot’s name
/setdescription – change bot description
/setabouttext – change bot about info
/setuserpic – change bot profile photo
/setcommands – change the list of commands
/deletebot – delete a bot
Bot Settings
/token – generate authorization token
/revoke – revoke bot access token
/setinline – toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo – toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results)
/setinlinefeedback – change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups – can your bot be added to groups?
/setprivacy – toggle privacy mode (https://core.telegram.org/bots/features#privacy-mode) in groups
Web Apps
/myapps – edit your web apps (https://core.telegram.org/bots/webapps)
/newapp – create a new web app (https://core.telegram.org/bots/webapps)
/listapps – get a list of your web apps
/editapp – edit a web app
/deleteapp – delete an existing web app
Games
/mygames – edit your games (https://core.telegram.org/bots/games)
/newgame – create a new game (https://core.telegram.org/bots/games)
/listgames – get a list of your games
/editgame – edit a game
/deletegame – delete an existing game
این پیام راهنمای استفاده از بات فادره که در ادامه تک تک گزینههارو شرح میدیم. همونطور که مشاهده میکنید لیست دستورات موجود برای بات فادر که خودش یک رباته هم داخل پیام بالا بههمراه توضیحشون ذکر شده. ترجمه مختصر پیام بالا در زیر قرار گرفته:
من میتونم بهت کمک کنم ربات تلگرامی بسازی و اونو مدیریت کنی. اگه شما تو مبحث API ربات تلگرامی تازه وارد هستید، لطفا راهنمارو ببینید (https://core.telegram.org/bots).
شما میتونی منو با ارسال این دستورات کنترل کنی:
/newbot – ایجاد یه ربات جدید
/mybots – ویرایش رباتهای شما
ویرایش رباتها
/setname – تغییر نام یک ربات
/setdescription – تغییر توضیحات ربات
/setabouttext – تغییر اطلاعات درباره ما برای ربات
/setuserpic – تغییر تصویر پروفایل ربات
/setcommands – تغییر لیست دستورات
/deletebot – حذف یک ربات
تنظیمات ربات
/token – تولید توکن اهراز هویت
/revoke – ابطال و بازتولید توکن اهراز هویت
/setinline – تغییر حالت درون خطی
/setinlinegeo – تغییر درخواستهای مکان درون خطی
/setinlinefeedback – تغییر تنظیمات فیدبک درون خطی
/setjoingroups – آیا ربات شما بتواند داخل گروهها اضافه شود؟
/setprivacy – تغییر حالت حریم خصوصی در گروهها
برنامههای وب
/myapps – ویرایش برنامههای وب شما
/newapp – ایجاد یک برنامه وب جدید
/listapps – گرفتن لیست برنامههای وب شما
/editapp – ویرایش یک برنامه وب
/deleteapp – حذف یک برنامه وب موجود
بازیها
/mygames – ویرایش بازیهای شما
/newgame – ایجاد یک بازی جدید
/listgames – گرفتن یک لیست از بازیهای شما
/editgame – حذف یک بازی
/deletegame – حذف یک بازی موجود
منوی دستورات
دستورات فوق در منویی که کنار بخش نوشتن پیام جدید قرار گرفته قابل مشاهده هستند؛ فقط کافیه تا طبق تصویر زیر برروی Menu کلیک کنید:
ساخت یک ربات جدید
دستور newbot/ رو به ربات ارسال کنید. بعد از ارسال دستور، ربات جواب زیر رو ارسال میکنه:
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
در اینجا بات فادر از شما خواسته تا یک اسم/نام دلخواه برای اکانت رباتی که قصد دارید بسازید انتخاب کنید. این نام همون چیزیه که توی لیست چتها نمایش داده میشه. منظور ما نام کاربری نیست بلکه چیزی مثل نام/نامخانوادگیه که روی اکانت اصلی خود مینویسید؛ و یا چیزی مثل عنوان برای کانال و گروهها.
بعد از اینکه یه اسم دلخواه انتخاب و به بات فادر محترم ارسال کردید، در صورتی که اسم مورد تایید بات فادر باشه (یعنی تعداد کاراکترها بیش از حد نباشه)، پیام زیر رو دریافت میکنید:
Good. Now let’s choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
حالا بات فادر از شما میخواد تا یک نام کاربری (Username) برای ربات خودتون انتخاب کنید. منطق انتخاب نام کاربری برای ربات بهاین صورته که حتما باید با کلمه bot به اتمام برسه! یعنی این کلمه حتما باید انتهای نام کاربری قرار داشته باشه. لطفا توجه داشته باشید که در حال حاضر نام کاربری قابل تغییر نیست، بنابراین تو انتخابش دقت کنید.
در صورتی که نام کاربری از قبل وجود داشته باشه، پیام زیر رو دریافت میکنید:
Sorry, this username is already taken. Please try something different.
در صورتی که نام کاربری صحیح نباشه یعنی از کاراکتر یا حرف نامناسبی داخلش استفاده شده باشه، پیام خطای زیر رو دریافت میکنید:
Sorry, this username is invalid.
در صورتی که نام کاربری صحیح باشه و از قبل هم وجود نداشته باشه، پیام زیر رو دریافت میکنید:
Done! Congratulations on your new bot. You will find it at t.me/HerMinalBot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you’ve finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
6859790514:AAGXNsV5G1KBejyWaxQLkxp1wn5sST70PP0
Keep your token secure and store it safely, it can be used by anyone to control your bot.
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
شما میتونید توکن مربوط به ربات خودتونو داخل متن بالا مشاهده کنید که بعد از عبارت Use this token to access the HTTP API قرار گرفته. از این توکن باید در هرجایی که نیاز بود استفاده کنید تا ربات شما بتونه کار کنه.
دستور mybots/
برای مشاهده لیست رباتهایی که در بات فادر ایجاد کردید، باید دستور mybots/ رو بهش ارسال کنید. در صورتی که رباتی ایجاد کرده باشید بات فادر پیامی رو برای شما ارسال میکنه که در زیر اون گزینههایی قرار داره. اصطلاحا به این مدل از گزینهها که در زیر پیام قرار میگیرند، کیبورد اینلاین یا درون خطی گفته میشه و هرکدوم از این گزینهها یک دکمه هستند. البته برخی از کاربران ممکنه که از اصطلاح دکمههای شیشهای برای این موارد استفاده کنند.
حالا در اینجا، این گزینهها شامل نام کاربری رباتها هستند. در واقع لیست رباتها بهصورت گزینههای کیبورد اینلاین توسط بات فادر ارسال شده و شما بایستی یکی رو انتخاب کنید تا بتونید اون رو مدیریت کنید. بعد از انتخاب یک مورد از لیست، پیام فعلی ویرایش شده و شما وارد مدیریت اون ربات میشید. سپس گزینههای جدیدی در زیر پیام ظاهر میشن که به شرح زیر هستند:
- API Token: مدیریت توکن
- Edit Bot: ویرایش اطلاعات ربات مثل نام
- Bot Settings: ویرایش تنظیمات ربات
- Payments: مسائل مالی که برای ما ایرانیان به دلیل تحریم کاربردی نداره
- Transfer Ownership: انتقال مالکیت ربات به حساب حقیقی یه شخص دیگه
- Delete Bot: حذف ربات
- Back to Bots List: بازگشت به لیست رباتها یه همون دستور mybots/
مدیریت توکن
برای مدیریت توکن وارد گزینهی API Token بشید. سپس بات فادر توکن مربوط به رباتِ انتخاب شده رو بهتون نمایش میده که در زیر اون گزینهی Revoke Current Token قرار داره. با انتخاب این گزینه، کلید مربوط به توکن ربات شما باطل شده و عوض میشه.
ویرایش ربات
با ورود به گزینهی Edit Bot ، بات فادر اطلاعات ربات شمارو نمایش میده. شما میتونید موارد مختلفی رو از طریق گزینهها تغییر بدید. این گزینهها به شرح زیر هستند:
- Edit Name: تغییر نام/اسم ربات
- Edit About: تغییر متن درباره ما. این متن موقع ورود به ربات نمایش داده میشه که در ابتدای صفحه پی وی ربات قرار داره.
- Edit Description: تغییر متن توضیحات ربات. این متن در پروفایل ربات قرار داره یا همون بیوی ربات.
- Edit Description Picture: در اینجا شما یک تصویر باید به ربات ارسال کنید که در واقع توضیحات ربات شما به صورت تصویری هست. این تصویر باید در اندازه 640×360 باشد؛ و یا یک گیف در اندازههای 320×180، 640×360 و یا 960×54. کاربران این تصویر یا گیف را زمانی که چتی را از طریق ربات شما باز کنند در قسمت عنوان مشاهده خواهند کرد که نوشته شده است “What can this bot do?”. در این قسمت از طریق دستور empty/ میشه تصویر موجود رو حذف نمود.
- Edit Botpic: میشه تصویری رو برای پروفایل ربات تنظیم کرده و یا اون رو تغییر داد.
- Edit Commands: اینجا دستورات ربات رو که مثل بات فادر در بخش Menu نمایش داده میشن رو تغییر داد. هر دستور رو تو یه خط و بدون علامت / در ابتدای اون وارد کنید و سپس یک خط تیره مقابل هر دستور قرار بدید و بعدش توضیحات اون دستور رو بنویسید. در نهایت اون لیست دستورات خودتون رو به بات فادر تحویل بدید. همینطور برای حذف لیست دستورات میتونید دستور empty/ رو به بات فادر ارسال کنید. لازم به ذکره دستور start/ که بهصورت پیشفرض تو منوی هر رباتی قرار داره رو نمیشه حذف کرد.
تنظینات ربات
بحش Bot Settings شامل یک سری تنظیمات رباته. شاید بگید خب تنظیمات ربات که در بخش ویرایش ربات قرار داشت، ولی خب اونجا با اطلاعات ربات سروکار داشتیم، ولی اینجا یک سری گزینههای دیگهای که اطلاعات ربات نیستند و در واقع قابلیتهای ربات هستند رو میشه فعال و غیرفعال کرد. این گزینهها شامل موارد زیر میشن:
- Inline Mode: احتمالا رباتهایی رو دیدین که تو بخش نوشتن پیام جدید، ابتدا @ و سپس نام کاربری اون ربات رو مینویسیم و بعدش یک فاصله قرار میدیم، سپس میشه از اون ربات بهنحوی استفاده کرد. این مدل استفاده از ربات حالت اینلاین یا درون خطی هستش. برای اینکه این حالت برای ربات شما فعال باشه (البته در صورتی که منطق ربات ازش پشتیبانی کنه)، از این قسمت باید اون رو فعال کنید چون بصورت پیشفرض خاموشه. پس از ورود به این بخش باید Turn on رو انتخاب کنید.
- ?Allow Groups: رباتها خودشون نمیتونن بهصورت اختیاری به گروهی جوین بشن، ولی بقیه میتونن رباتهارو به گروهاشون اضافه کنن. بهصورت پیشفرض این قابلیت برای هر رباتی فعاله ولی اگه میخواین جلوی اضافه شدن رباتتون به گروههارو بگیرین، از این گزینه استفاده کرده و بعدش روی Turn groups off کلیک کنید.
- Group Privacy: زمانیکه باتها به گروهها اضافه میشن، فقط میتونن یک سری موارد رو تو اون گروه مشاهده کنن؛ که شامل دستورات، حالت اینلاینِ ربات و پیامای ریپلای شده به ربات هست. برای اینکه ربات بتونه بهصورت کامل به هر اتفاقی که تو گروهها میفته دسترسی داشته باشه باید از این قسمت برروی Turn off کلیک کنید تا حالت حریم خصوصی خاموش شه.
- Group Admin Rights: بهصورت پیشفرض ربات موقه اضافه شدن به یه گروه به دسترسی ادمینِ خاصی نیاز نداره و البته نیازی نداره ادمین شه، اما اگه میخواین که برخی از دسترسیهای ادمین مثل حذف پیام رو به ربات بدید، باید از این قسمت اون دسترسیهارو فعال کنید تا ربات موقع اد شدن به گروه، بهصورت پیشفرض این دسترسیهارو بخواد تا بهش داده شه. تو این بخش روی هر دسترسی که کلیک کنید، کنارش یه تیک ایجاد میشه که به معنی فعال شدنشه.
- Channel Admin Rights: همون دسترسیها که در گزینهی قبلی توضیح داده شد، ولی این دفعه برای کانالهاس.
- Paymants: به تنظیمات مالی ربات مربوطه؛ که برای ایران تحریمه.
- Domain: از این مورد برای تنظیم یه دامنه روی ربات استفاده میشه؛ که در حالت ورود و لاگین با تلگرام کاربرد داره.
انتقال مالکیت ربات
برای انتقال مالکیت ربات به یه حساب کاربری دیگه، باید از گزینهی Transfer Ownership که در بخش مدیریت ربات قرار داره استفاده کنید. بعد از این کار باید نام کاربری دریافت کننده رو به بات فادر بفرستین و یا میتونین مخاطب مربوط به حساب دریافت کننده رو به بات فادر ارسال کنید. اینجا ممکنه بات فادر از شما رمز دو مرحلهای حساب تلگرامیتون رو بخواد.
حذف ربات
از گزینهی Delete Bot نیز برای حذف ربات استفاده میشه؛ که در نهایت با انتخاب اون، روی گزینهی Yes, delete the bot و بعدش روی Yes, I’m 100% sure! کلیک کنید.
مهمترین موارد مربوط به بات فادر توضیح داده شد، فقط میمونه بخش برنامههای وب و بازیها که در مقالات جدایی به اونها میپردازیم.