اولین اقدام، برای ساخت یک ربات در تلگرام، ساخت یک اکانت (Account) ربات میباشد. بدین منظور، باید از رباتی که خود سازندهی تلگرام برای ایجاد اکانت ربات قرار داده است، استفاده کنیم!
این ربات، ربات پدر ( BotFather = بات فادر ) نام دارد که نام کاربری و پسورد ربات را در قالب یک عبارت کوتاهی به نام Token ، به ما تحویل میدهد.
در ادامه، به معرفی کامل BotFather پرداختهایم.
BotFather ( بات فادر)
بات فادر ( BotFather ) تنها به دو منظور مورد استفاده قرار میگیرد:
- ساخت یک اکانت ربات
- تنظیم شناسنامه یا اطلاعات اولیهی ربات
مثل عکس پروفایل، نام کاربری، نام نمایشی و یک سری دسترسی هایی مانند: اضافه شدن به گروه، دسترسی خواندن همه پیام های گروه و …
پس، بات فادر تنها برای ساخت یک اکانت ربات مورد استفاده قرار میگیرد. یعنی شما با استفاده از بات فادر، یک شناسهی ربات در تلگرام ایجاد میکنید.
پس با توجه به این موضوع، شما با استفاده از بات فادر نمیتوانید برای ربات، عملکرد منطقی ای مثل این مورد که اگر شخصی وارد پی وی ربات شد، به او چه پیامی ارسال شود را تعریف کنید.
برای پیاده کردن چنین چیزهایی، شما باید بعد از ساخت اکانت ربات توسط بات فادر و گرفتن رمز ربات (توکن)، شروع به برنامه نویسی کنید و یا این که از ربات سازهای آماده استفاده کنید. (که البته امکانات پویاتری به شما نخواهند داد)
و همچنین بعد از این که پست فعلی را مطالعه کردید، برای آشنایی با نحوه برنامه نویسی ربات تلگرام، میتوانید به پست های زیر مراجعه کنید:
- آنچه قبل از شروع باید بدانیم
- آشنایی با API ربات تلگرام به صورت کلیشه ای
- ساخت اولین ربات با PHP
- فایل TBS
- تفکیک نوع آپدیت ها در ربات تلگرام
- به زودی …
ورود به بات فادر
- عبارت BotFather را به همراه یک @ در ابتدای آن، در قسمت سرچ تلگرام تایپ کنید تا نام ربات در نتایج جستجو نمایش داده شود.
- روی آن کلیک کنید تا وارد PV ربات شوید.
- روی START کلیک کنید تا ربات شروع شود.
با پیام زیر رو به رو می شوید که لیست دستورات برایتان ارسال شده است.
نکته: تمامی دستورات با / شروع میشوند؛ پس اگر ما در جایی گفتیم دستور فلان را ارسال کنید، منظورمان این است که ابتدای دستور حرف / را هم بنویسید.
نکته: البته ممکن است در آینده، متن پیام فوق تغییر یابد؛ ولی ما سعی میکنیم تا همیشه این پست را به روز نگه داریم.
دستور newbot
همانطور که از نام دستور پیداست، این دستور، برای ساخت (یا به دنیا آوردن یک ربات جدید) استفاده میشود.
بعد از ارسال دستور به ربات، با پیام زیر رو به رو می شوید.
در اینجا، بات فادر از ما میخواهد تا نامی برای ربات انتخاب کنیم. منظور از نام، نام کاربری ربات نیست؛ بلکه نام نمایشی ربات میباشد.
نام نمایشی، دقیقا همان چیزیست که شما در Firstname (نام کوچک) و Lastname (نام خانوادگی) اکانتِ اصلی خودتان وارد میکنید.
حالا فرض کنیم ما نام زیر را برای ربات خود انتخاب میکنیم:
بعد از انتخاب نام نمایشی ربات، بات فادر از ما نام کاربری (Username) ربات را میخواهد تا ارسال کنیم.
که این نام کاربری باید مثل TetrisBot یا tetris_bot باشد! یعنی چه؟!
یعنی:
- نام کاربری ربات باید حتما به کلمهی Bot ختم شود
- اگر از _ برای جدا کردن کلمات از هم استفاده میکنید، تمام حروف را کوچک بنویسید. (اجباری نیست)
- اگر نمیخواهید از _ برای جدا کردن کلمات از هم استفاده کنید، اولین حرف هر کلمه را با حرف بزرگ بنویسید. (اجباری نیست)
فرض کنید، ما نام کاربری ربات را FullKadeBot انتخاب میکنیم:
اگر شما هم بعد از اینکه یک نام کاربری به ربات ارسال کردید، با مورد بالا مواجه شدید، یعنی این نام کاربری از قبل توسط شخص دیگری انتخاب شده است.
پس باید نام کاربری دیگری را برای ربات خود انتخاب کنیم؛ مثلا TeleBotHastam
چون آخر نام کاربری به Bot ختم نشده است، بات فادر از نام کابری ایراد گرفته و به ما میگوید که نام کاربری خود را اصلاح کنیم.
و برای بار سوم LoveTeleBot را تست میکنیم:
تبریک!
ربات ساخته شد و توکن آن، همانند تصویر بالا که مشخص کرده ایم، برایمان ارسال شد.
توکن بعد از عبارت HTTP API قرار دارد.
توکن، در نقش کلیدی برای دسترسی به ربات میباشد.
- از این کلید در برنامه نویسی، استفاده خواهیم کرد تا بتوانیم به ربات خود دسترسی داشته باشیم و مواردی مثل ارسال پیام، دریافت پیام و … را انجام دهیم.
- برای ساخت ربات جدید، می توانید دوباره همین مراحل راتکرار کنید. (البته با نام کاربری جدید)
- در حال حاظر، امکان تغییر نام کاربری برای ربات ها مثل اکانت های رسمی، وجود ندارد!
- در حال حاظر، هر کاربر، فقط میتواند 20 ربات بسازد.
دستور token
برای گرفتن مجدد توکن رباتی که ساخته اید استفاده میشود:
- دستور را ارسال کنید.
- ربات هایی که ساخته اید، به صورت دکمه به شما نمایش داده میشوند.
- یکی از آن ها را انتخاب کنید تا توکن آن، مجدد برایتان ارسال شود.
نکته: این کار، باعث تغییر توکن نمیشود، بلکه همان توکن را دوباره به شما ارسال میکند.
دستور revoke (تغییر توکن ربات)
در دستور قبل، روش گرفتن مجدد توکن را به شما گفتیم؛ اما زمانی میرسد که به دلایلی مثل لو رفتن توکن ربات، بخواهید آن را تغییر دهید.
پس میتوانید از این دستور استفاده کنید:
- دستور revoke را ارسال کنید.
- ربات را انتخاب کنید.
- توکن جدید به شما ارسال خواهد شد.
دستور setname (تغییر نام نمایشی ربات)
برا تغییر نام نمایشی ربات استفاده میشود:
- دستور setname را ارسال کنید.
- ربات را انتخاب کنید.
- نام جدید را ارسال کنید.
دستور setdescription (تغییر توضیات ربات)
هر رباتی در تلگرام، شامل توضیحی درباره خودش میباشد.
- دستور setdescription را ارسال کنید.
- ربات را انتخاب کنید.
- توضیخ خود را نوشته و ارسال کنید.
این توضیح، به هنگام ورود به PV ربات، به کاربر نمایش داده میشود؛ به صورت زیر:
نکته: با حذف پیام ها، این توضیخ حذف نخواهد شد و همیشه در ابتدای چت کاربر با ربات، وجود خواهد داشت.
پس اگر کاربری، تاریخچهی چت خود را پاک کرد، این توضیح دوباره به او نمایش داده میشود. (حتی با حذف کلی چت ربات و ورود دوباره به پی وی ربات)
دستور setabouttext (تغییر توضیحات پروفایل ربات)
دستور قبل، توضیحی را در داخل پی وی ربات نمایش میداد.
اما این دستور، توضیحی را در پروفایل ربات (مثل قسمت توضیحات کانال و یا Bio) نمایش میدهد.
- دستور setabouttext را ارسال کنید.
- ربات را انتخاب کنید.
- توضیخ خود را نوشته و ارسال کنید.
دستور setuserpic (تغییر تصویر ربات)
برای تنظیم و تغییر عکس پروفایل ربات استفاده میشود.
- دستور setuserpic را ارسال کنید.
- ربات را انتخاب کنید.
- تصویر خود را ارسال کنید.
دستور setcommands (تغییر منوی دستورات ربات)
دستوراتی که در بالا توضیح دادیم، همگی با / شروع شده بودند.
شما هم میتوانید دستوراتی با نام های دلخواه برای ربات خود مشخص کنید.
دقت داشته باشید که ما توسط بات فادر، فقط این دستورات را مشخص میکنیم ولی برای آن ها عملکردی را تعریف نمیکنیم!
کاربرد این کار تنها این است که اگر کاربر وارد ربات شد، با نوشتن / این دستورات را مشاهده کند، بدون اینکه شما برای ربات خود برنامه نویسی کرده باشید.
ولی زمانی که دستور را به ربات ارسال میکند، در حالت عادی اتفاقی نخواهد افتاد.
بعد از ارسال دستور setcommands به بات فادر، پاسخ زیر را دریافت خواهید کرد:
OK.Send mealist of commands foryour bot.Please usethisformat: command1-Description command2-Another description |
یعنی باید دستورات را به صورت زیر برای ربات ارسال کنید:
همانطور که مشاهده میکنید، در هر خط از پیامی که ارسال کرده ایم، دستور را نوشته و با قرار داده یک – توضیح آن را نوشته ایم.
نکات مهم دربارهی دستورات / :
- همانطور که در تصویر بالا میبینید، گوشه سمت راست و پاینن، آیکون / قرار دارد و شما نمیتوانید این آیکون را از ربات خود حذف کنید.
- هر بار که دستورات جدیدی را با برای ربات خود تنظیم کنید، جایگزین دستورات قبلی میشود.
- ممکن است بعد از تنظیم دستورات، اندکی طول بکشد روی ربات اعمال شود.
- تلگرام خودش به صورت پیش فرض، موقعی که وارد پی وی ربات میشوید، دستور start را نمایش میدهد.
- در حال حاظر، نمیتوانبد منوی دستورات را بعد از تنظیم کردن حذف کنید.
تنها میتوانید آن را تغییر دهید و حداقل باید یک دستور تنظیم کنید. (برای مثال دستور start را میتوانید تنظیم کنید که دستور پیشفرض هررباتی میباشد)
دستور setjoingroups (تغییر دسترسی جوین شدن به گروه)
این دستور مشخص میکند که آیا کسی میتواند ربات شما را به گروهی اضافه کند یا حیر!
- دستور setjoingroups را ارسال کنید.
- ربات را انتخاب کنید.
- برای دسترسی دیگران به اضافه کردن ربات به گروه، گزینه Enable و برای حذف دسترسی، گزینه Disable را انتخاب کنید.
نکته: ربات ها خودشان نمیتوانند، توسط لینک یا نام کاربری، وارد گروه، کانال و پی وی شوند.
- در گروه ها: باید ادمین یا اعضا (درصورت داشتن دسترسی) ربات را اضافه کنند.
- در کانال ها: باید ادمین ربات را اضافه کند.
- در پی وی ها: باید کاربر ربات را start کند تا ربات بتواند با او ارتباط برقرار کند.
روش اول اد کردن ربات به گروه:
- از تنظیات گروه، Add Member را انتخاب کنید.
- در کادر جستجو، حرف @ و بعداز آن نام کاربری ربات را بنویسید و صبر کنید تا ربات در لیست ظاهر شود.
روش دوم اد کردن ربات به گروه:
- وارد پروفایل ربات شوید.
- گزینه یا آیکون مربوط به اضافه کردن به گروه را که در کنار عکس پروفایل آن است انتخاب کنید.
- گروه مورد نظر را انتخاب کنید.
خب حالا چرا این قابلیت به چه دردی میخورد؟
میتوانید ربات خود را به گروهی که دوست دارید اضافه کنید و بعد از آن، دسترسی اضافه شدن را غیرفعال کنید تا ربات به گروه دیگری اضافه نشود.
دستور setprivacy (تغییر دسترسی به همه پیام های گروه)
برای تنظیم حریم خصوصی استفاده میشود.
در صورتی که بخواهید ربات به همهی پیام های داخل گروه دسترسی داشته باشد یا تنها به پیام هایی که به او Reply میشوند یا با / شروع میشوند، دسترسی داشته باشد.
- دستور setprivacy را ارسال کنید.
- ربات خود را انتخاب کنید.
- برای دسترسی به همه پیام ها، گزینه Disable را انتخاب کنید و برای دسترسی نداشتن، گزینه Enable را انتخاب کنید.
دستور deletebot (کشتن ربات یا حذف ربات)
از این دستور برای کُشتَنِ ربات استفاده میشود. ( کشتن استعاره از حذف کردنه ? )
- دستور deletebot را ارسال کنین.
- ربات خود را انتخاب کنید.
- عبارت زیر را ارسال کنید؛ با ارسال این دستور، میگویید که از انجام دادن کارتان کاملا مطمئن هستید.
(ظاهرن بات فادر نمیخواد به هیچ وجه قتل ربات رو به عهده بگیره)
- شاید دوباره از شما همین عبارت خواسته شود که باید دوباره ارسال کید.
حتی نقطه یا فاصله یا ویرگول را هم نباید اشتباه وارد کنید.
( آقا ثقلهههه … قتل….!!! بایدتا میتونه ازتون اعتراف بکشه و مدرک بگیره ? )
دستور cancel (لغو عملیات فعلی)
فرض کنید دستور تغییر عکس پروفایل را به ربات ارسال کرده اید.
ولی وقتی از شما تصویر را میخواهد، منصرف میشوید؛ پس میتوانید دستور cancel را ارسال کنید.
دستورات setinline ، setinlinegeo و setinlinefeedback
اگر از ربات هایی مثل LIKE و VOTE (روی هرکدام کلیک کنید تا با هرکدام آشنا شوید) استفاده کرده باشید، میدانید که میتوانید از این ربات ها، بدون وارد شدن به پی وی آن ها نیز استفاده کرد. یعنی به محض نوشتن نام کاربریشان در پی وی، گروه یا …و قرار دادن یک فاصله بعد از آن، میتوانیم به صورت مستقیم، یک عملکردی را بدون وارد شدن به پی وی ربات انجام دهیم.
برای مثال:
همتانطور که میبینید، بعد از نوشتن نام کاربری ربات و قرار دادن یک فاصله، متن “Message with buttons” نمایش داده شده است. (البته مقدار این متن را هم از بات فادر تنظیم می کنیم.)
با استفاده از این قابلیت، در هرنوع چتی که باشیم (گروه، پی وی و …) ، می توانیم از ربات استفاده کنیم! البته منظور از استفاده از ربات، این است که میتوانیم از قابلیت هایی که سازنده ربات برای این حالت ایجاد کرده است، استفاده کنیم.
به این قابلیت، Inline (درون خطی) میگوییم.
دستور setinline (تنظیم فعال و غیرفعال بودن Inline)
- دستور setinline را ارسال کنید.
- برای غیرفعال کردن خاصبت Inine، میتوانید عبارت disable را ارسال کنید.
- برای فعال کردن خاصیت Inline، باید متنی برای نمایش ارسال کنید!
در تصویر بالا بعد از نوشتن نام کاربری ربات، متن Message with buttons به صورت کمرنگ دیده میشود.
این متن به کاربر میگوید که در اینجا میتواند چه جیزی بنویسد.
دو دستور setinlinegeo و setinlinefeedback را بعدا توضیخ خواهم داد.
نکته: ببینید، همانطور که گفتم، شما توسط بات فادر نمیتوانید برای این قسمت عملکردی را تعریف کنید و بگویید که بعد از نوشتن فلان چیز، چه چیزی در اینجا نمایش داده شود.
دستور mybotes (قابلیت جدید به جای استفاده از دستورات بالا)
با ارسال این دستور، لیست ربات ها در زیر پیامی که از طرف بات فادر دریافت میشود، به صورت دکمه های شیشه ای ظاهر میشوند.
البته به این دکمه ها، دکمه های Inline میگویند.
در این حالت، شما میتوانید یکی از ربات ها را انتخاب کرده و به جای استفاده از دستورات بالا، تمام آن مراحل را به شکل دیگری انجام دهید.
نکات تکمیلی در مورد BotFather ( بات فادر)
- تمامی موارد مورد نیاز بات فادر، در این پست توضیح داده شده اند به جز دستوراتی که در انتهای پست نوشته ام.
- هر اکانتی که ربات را با آن میسازید دیگر برای آن اکانت ثبت میشود و در حال حاظر قابل تغییر نیست.
- در حال حاظر امکان تغییر نام کاربری ربات وجود ندارد.
- در مورد روش های ساخت منطق ربات، در این پست سوالی نپرسید. در غیر اینصورت پاسخ داده نمی شود.
و بالاخره، هرچیزی که در این پست گفته نشده است، به روش های پیاده سازی منطق ربات مربوط میشود و بحث آن خارج از بجث بات فادر میباشد.
دستورات newgame , listgames , editgame , deletegame و mygames را بعدا توضیح خواهم داد.