فول کده
ورود عضویت
تبلیغات

آموزش کامل BotFather بات فادر (اولین قدم ساخت ربات)

آموزش کامل BotFather (اولین قدم ساخت ربات)
هادی اکبرزاده
نوشته شده توسط هادی اکبرزاده

BotFather
به روز شده در 4 آذر 1396

لطفا تا آخر، توضیحات را خوانده و سوالات تکراری نپرسید.

اولین اقدام، برای ساخت یک ربات در تلگرام، ساخت یک اکانت (Account) ربات می‌باشد. بدین منظور، باید از رباتی که خود سازنده‌ی تلگرام برای ایجاد اکانت ربات قرار داده است، استفاده کنیم!

این ربات، ربات پدر ( BotFather  = بات فادر ) نام دارد که نام کاربری و پسورد ربات را در قالب یک عبارت کوتاهی به نام Token ، به ما تحویل می‌دهد.
در ادامه، به معرفی کامل BotFather پرداخته‌ایم.

BotFather ( بات فادر)

بات فادر ( BotFather ) تنها به دو منظور مورد استفاده قرار می‌گیرد:

  1. ساخت یک اکانت ربات
  2. تنظیم شناسنامه یا اطلاعات اولیه‌ی ربات
    مثل عکس پروفایل، نام کاربری، نام نمایشی و یک سری دسترسی هایی مانند: اضافه شدن به گروه، دسترسی خواندن همه پیام های گروه و …

پس، بات فادر تنها برای ساخت یک اکانت ربات مورد استفاده قرار می‌‎گیرد. یعنی شما با استفاده از بات فادر، یک شناسه‌ی ربات در تلگرام ایجاد می‌کنید.

پس با توجه به این موضوع، شما با استفاده از بات فادر نمی‌توانید برای ربات، عملکرد منطقی ای مثل این مورد که اگر شخصی وارد پی وی ربات شد، به او چه پیامی ارسال شود را تعریف کنید.
برای پیاده کردن چنین چیزهایی، شما باید بعد از ساخت اکانت ربات توسط بات فادر و گرفتن رمز ربات (توکن)، شروع به برنامه نویسی کنید و یا این که از ربات سازهای آماده استفاده کنید. (که البته امکانات پویاتری به شما نخواهند داد)

و همچنین بعد از این که پست فعلی را مطالعه کردید، برای آشنایی با نحوه برنامه نویسی ربات تلگرام، می‌توانید به پست های زیر مراجعه کنید:

ورود به بات فادر

  • عبارت BotFather را به همراه یک @ در ابتدای آن، در قسمت سرچ تلگرام تایپ کنید تا نام ربات در نتایج جستجو نمایش داده شود.
  • روی آن کلیک کنید تا وارد PV ربات شوید.
  • روی START کلیک کنید تا ربات شروع شود.
    با پیام زیر رو به رو می شوید که لیست دستورات برایتان ارسال شده است.

نکته: تمامی دستورات با / شروع می‌شوند؛ پس اگر ما در جایی گفتیم دستور فلان را ارسال کنید، منظورمان این است که ابتدای دستور حرف / را هم بنویسید.

نکته: البته ممکن است در آینده، متن پیام فوق تغییر یابد؛ ولی ما سعی می‌کنیم تا همیشه این پست را به روز نگه داریم.

دستور newbot

همانطور که از نام دستور پیداست، این دستور، برای ساخت (یا به دنیا آوردن یک ربات جدید) استفاده می‌شود.
بعد از ارسال دستور به ربات، با پیام زیر رو به رو می شوید.

BotFather-2-NewBot

‌در این‌جا، بات فادر از ما می‌خواهد تا نامی برای ربات انتخاب کنیم. منظور از نام، نام کاربری ربات نیست؛ بلکه نام نمایشی ربات می‌باشد.
نام نمایشی، دقیقا همان چیزیست که شما در Firstname (نام کوچک) و Lastname (نام خانوادگی) اکانتِ اصلی خودتان وارد می‌کنید.

حالا فرض کنیم ما نام زیر را برای ربات خود انتخاب می‌کنیم:

BotFather-2-NewBot2

بعد از انتخاب نام نمایشی ربات، بات فادر از ما نام کاربری (Username) ربات را می‌خواهد تا ارسال کنیم.
که این نام کاربری باید مثل TetrisBot یا tetris_bot باشد! یعنی چه؟!
یعنی:

  • نام کاربری ربات باید حتما به کلمه‌ی Bot ختم شود
  • اگر از _ برای جدا کردن کلمات از هم استفاده می‌کنید، تمام حروف را کوچک بنویسید. (اجباری نیست)
  • اگر نمی‌خواهید از _  برای جدا کردن کلمات از هم استفاده کنید، اولین حرف هر کلمه را با حرف بزرگ بنویسید. (اجباری نیست)

فرض کنید، ما نام کاربری ربات را FullKadeBot انتخاب می‌کنیم:

BotFather-2-NewBot3

اگر شما هم بعد از این‌که یک نام کاربری به ربات ارسال کردید، با مورد بالا مواجه شدید، یعنی این نام کاربری از قبل توسط شخص دیگری انتخاب شده است.
پس باید نام کاربری دیگری را برای ربات خود انتخاب کنیم؛ مثلا TeleBotHastam

BotFather-2-NewBot4

چون آخر نام کاربری به Bot ختم نشده است، بات فادر از نام کابری ایراد گرفته و به ما می‌گوید که نام کاربری خود را اصلاح کنیم.
و برای بار سوم LoveTeleBot را تست می‌کنیم:

BotFather-2-NewBot5

تبریک!
ربات ساخته شد و توکن آن، همانند تصویر بالا که مشخص کرده ایم، برایمان ارسال شد.
توکن بعد از عبارت HTTP API قرار دارد.

توکن، در نقش کلیدی برای دسترسی به ربات می‌باشد.

  • از این کلید در برنامه نویسی، استفاده خواهیم کرد تا بتوانیم به ربات خود دسترسی داشته باشیم و مواردی مثل ارسال پیام، دریافت پیام و … را انجام دهیم.
  • برای ساخت ربات جدید، می توانید دوباره همین مراحل راتکرار کنید. (البته با نام کاربری جدید)
  • در حال حاظر، امکان تغییر نام کاربری برای ربات ها مثل اکانت های رسمی، وجود ندارد!
  • در حال حاظر، هر کاربر، فقط می‌تواند 20 ربات بسازد.

دستور token

برای گرفتن مجدد توکن رباتی که ساخته اید استفاده می‌شود:

  • دستور را ارسال کنید.
  • ربات هایی که ساخته اید، به صورت دکمه به شما نمایش داده میشوند.
  • یکی از آن ها را انتخاب کنید تا توکن آن، مجدد برایتان ارسال شود.

نکته: این کار، باعث تغییر توکن نمی‌شود، بلکه همان توکن را دوباره به شما ارسال می‌کند.

BotFather-2-NewBot6

BotFather-2-NewBot7

دستور revoke (تغییر توکن ربات)

در دستور قبل، روش گرفتن مجدد توکن را به شما گفتیم؛ اما زمانی میرسد که به دلایلی مثل لو رفتن توکن ربات، بخواهید آن را تغییر دهید.
پس می‌توانید از این دستور استفاده کنید:

  • دستور revoke را ارسال کنید.
  • ربات را انتخاب کنید.
  • توکن جدید به شما ارسال خواهد شد.

دستور setname (تغییر نام نمایشی ربات)

برا تغییر  نام نمایشی ربات استفاده می‌شود:

  • دستور setname را ارسال کنید.
  • ربات را انتخاب کنید.
  • نام جدید را ارسال کنید.

دستور setdescription (تغییر توضیات ربات)

هر رباتی در تلگرام، شامل توضیحی درباره خودش می‌باشد.

  • دستور setdescription را ارسال کنید.
  • ربات را انتخاب کنید.
  • توضیخ خود را نوشته و ارسال کنید.

این توضیح، به هنگام ورود به PV ربات، به کاربر نمایش داده می‌شود؛ به صورت زیر:

BotFather-5-Description
نکته: با حذف پیام ها، این توضیخ حذف نخواهد شد و همیشه در ابتدای چت کاربر با ربات، وجود خواهد داشت.
پس اگر کاربری، تاریخچه‌ی چت خود را پاک کرد، این توضیح دوباره به او نمایش داده می‌شود. (حتی با حذف کلی چت ربات و ورود دوباره به پی وی ربات)

دستور setabouttext (تغییر توضیحات پروفایل ربات)

دستور قبل، توضیحی را در داخل پی وی ربات نمایش می‌داد.
اما این دستور، توضیحی را در پروفایل ربات (مثل قسمت توضیحات کانال و یا Bio)  نمایش می‌دهد.

  • دستور setabouttext را ارسال کنید.
  • ربات را انتخاب کنید.
  • توضیخ خود را نوشته و ارسال کنید.

دستور setuserpic (تغییر تصویر ربات)

برای تنظیم و تغییر عکس پروفایل ربات استفاده می‌شود.

  • دستور setuserpic را ارسال کنید.
  • ربات را انتخاب کنید.
  • تصویر خود را ارسال کنید.

دستور setcommands (تغییر منوی دستورات ربات)

دستوراتی که در بالا توضیح دادیم، همگی با / شروع شده بودند.
شما هم می‌توانید دستوراتی با نام های دلخواه برای ربات خود مشخص کنید.

دقت داشته باشید که ما توسط بات فادر، فقط این دستورات را مشخص میکنیم ولی برای آن ها عملکردی را تعریف نمیکنیم!
کاربرد این کار تنها این است که اگر کاربر وارد ربات شد، با نوشتن /  این دستورات را مشاهده کند، بدون اینکه شما برای ربات خود برنامه نویسی کرده باشید.
ولی زمانی که دستور را به ربات ارسال می‌کند، در حالت عادی اتفاقی نخواهد افتاد.

بعد از ارسال دستور setcommands  به بات فادر، پاسخ زیر را دریافت خواهید کرد:

یعنی باید دستورات را به صورت زیر برای ربات ارسال کنید:

BotFather-11همانطور که مشاهده میکنید، در هر خط از پیامی که ارسال کرده ایم، دستور را نوشته و با قرار داده یک – توضیح آن را نوشته ایم.

نکات مهم درباره‌ی دستورات / :

  • همانطور که در تصویر بالا می‌بینید، گوشه سمت راست و پاینن، آیکون / قرار دارد و شما نمی‌توانید این آیکون را از ربات خود حذف کنید.
  • هر بار که دستورات جدیدی را با برای ربات خود تنظیم کنید، جایگزین دستورات قبلی می‌شود.
  • ممکن است بعد از تنظیم دستورات، اندکی طول بکشد روی ربات اعمال شود.
  • تلگرام خودش به صورت پیش فرض، موقعی که وارد پی وی ربات می‌شوید، دستور start را نمایش می‌دهد.
  • در حال حاظر، نمی‌توانبد منوی دستورات را بعد از تنظیم کردن حذف کنید.
    تنها می‌توانید آن را تغییر دهید و حداقل باید یک دستور تنظیم کنید. (برای مثال دستور start را می‌توانید تنظیم کنید که دستور پیشفرض هررباتی م‌یباشد)

دستور setjoingroups (تغییر دسترسی جوین شدن به گروه)

 

این دستور مشخص می‌‎کند که آیا کسی می‌تواند ربات شما را به گروهی اضافه کند یا حیر!‌‎

  1. دستور setjoingroups را ارسال کنید.
  2. ربات را انتخاب کنید.
  3. برای دسترسی دیگران به اضافه کردن ربات به گروه، گزینه Enable و برای حذف دسترسی، گزینه Disable را انتخاب کنید.

نکته: ربات ها خودشان نمی‌توانند، توسط لینک یا نام کاربری، وارد گروه، کانال و پی وی شوند.

  • در گروه ها: باید ادمین یا اعضا (درصورت داشتن دسترسی) ربات را اضافه کنند.
  • در کانال ها: باید ادمین ربات را اضافه کند.
  • در پی وی ها: باید کاربر ربات را start کند تا ربات بتواند با او ارتباط برقرار کند.

روش اول اد کردن ربات به گروه:

  1. از تنظیات گروه، Add Member  را انتخاب کنید.
  2. در کادر جستجو، حرف @ و بعداز آن نام کاربری ربات را بنویسید و صبر کنید تا ربات در لیست ظاهر شود.

روش دوم اد کردن ربات به گروه:

  1. وارد پروفایل ربات شوید.
  2. گزینه یا آیکون مربوط به اضافه کردن به گروه را که در کنار عکس پروفایل آن است انتخاب کنید.
  3. گروه مورد نظر را انتخاب کنید.

خب حالا چرا این قابلیت به چه دردی می‌خورد؟

می‌توانید ربات خود را به گروهی که دوست دارید اضافه کنید و بعد از آن، دسترسی اضافه شدن را غیرفعال کنید تا ربات به گروه دیگری اضافه نشود.

دستور setprivacy (تغییر دسترسی به همه پیام های گروه)

برای تنظیم حریم خصوصی استفاده می‌شود.
در صورتی که بخواهید ربات به همه‌ی پیام های داخل گروه دسترسی داشته باشد یا تنها به پیام هایی که به او Reply میشوند یا با / شروع میشوند، دسترسی داشته باشد.

  • دستور setprivacy را ارسال کنید.
  • ربات خود را انتخاب کنید.
  • برای دسترسی به همه پیام ها، گزینه Disable را انتخاب کنید و برای دسترسی نداشتن، گزینه Enable را انتخاب کنید.

دستور deletebot (کشتن ربات یا حذف ربات)

از این دستور برای کُشتَنِ ربات استفاده می‌شود. ( کشتن استعاره از حذف کردنه bigsmile )

  • دستور deletebot را ارسال کنین.
  • ربات خود را انتخاب کنید.
  • عبارت زیر را ارسال کنید؛ با ارسال این دستور، میگویید که از انجام دادن کارتان کاملا مطمئن هستید.
    (ظاهرن بات فادر نمیخواد به هیچ وجه قتل ربات رو به عهده بگیره)

  • شاید دوباره از شما همین عبارت خواسته شود که باید دوباره ارسال کید.
    حتی نقطه یا فاصله یا ویرگول را هم نباید اشتباه وارد کنید.
    ( آقا ثقلهههه … قتل….!!! بایدتا میتونه ازتون اعتراف بکشه و مدرک بگیره bigsmile )

دستور 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 را بعدا توضیح خواهم داد.

تبلیغات
کانال تلگرام فول کده

درباره نویسنده

هادی اکبرزاده

هادی اکبرزاده

[ مدیر فول کده ]

متولد آبان 74. برنامه نویسی اندروید، ویندوز، وب و ...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قوانین نظرات

  • تعریف قسمت نظرات: سیستم نظرات، محلی است تا شما بتوانید دیدگاه خودتان را نسبت به پست قرار داده شده بنویسید.
  • نظرات شما دوستان عزیز در صورتی که به بهبود پست کمک کند با ذکر نامتان در پست قرار داده میشود.
  • برای سوال کردن نسبت به موضوع قرار داده شده در پست، نیازی به سلام و احوال پرسی نیست و این به خاطر ساده تر شدن نظرات میباشد.
  • دیدگاه شما باید درباره همین پست باشد، نظرات پست های دیگر فول کده را در قسمت نظرات مربوط به خودش بپرسید. در غیر اینصورت تایید یا پاسخ داده نمیشود.
  • اگر چیزی که گفته باشید در پست توضیح داده شده باشد، نظر شما تایید یا پاسخ داده نمیشود.
  • برای پاسخ دادن به نظرات دیگران از گزینه پاسخ کنار هر نظر استفاده کنید و یک نظر جدید ارسال نفرمایید. همانطور که برای نظر جدید، نباید از پاسخ دادن استفاده کنید.
  • نظرات کوتاهی مانند "مرسی"، "عالی بود" تایید نمیشوند و این به خاطر شلوغ نشدن قسمت نظرات میباشد.
  • این مورد ضروری نیست ولی بهتر است در سایت ثبت نام کرده و سپس با اکانت خود وارد شده و نظر خود را ارسال کنید.
  • قوانین نظرات در طول زمان در این قسمت اضافه و تغییر داده میشوند و میتوانید از این قسمت بررسی کنید.
  • این قوانین شامل پست های قدیمی نمیشود ولی نظرات پست های قدیمی نیز در صورت نیاز اصلاح خواهند شد.

نظرات ثبت شده 155 دیدگاه

    1. محمدرضا گفت:

      سلام و خسته نباشید خدمت شما.
      ممنونم از راهنمایی واقعا عالیتون. فقط یه سوال. از کجا دستور برای دکمه های ربات بسازیم؟/
      ممنون میشم پاسخ بدین/

      1. سلام، اگه مطلب فوق رو بخونین نوشتم که تمام موارد مربوط به بات فادر گفته شده ولاغیر مربوط به برنامه نویسی میشه

        1. محمدرضا گفت:

          میدونم. ولی میگم با چه برنامه ای باید این کارو انجام بدیم.

          1. تمام مواردی که تو این پست درباره ربات تلگرام گفته نشده به برنامه نویسی ربات مربوط میشن
            و همچنین لینک چند پستی که تاکنون درباره برنامه نویسی ربات تلگرام هم تو سایت منتشر شده رو تو همین پست قرار دادم
            و درمورد رباتایی و برنامه هایی که ازتون توکن میگیرن نمیتونیم چیزیو معرفی کنیم
            و البته ساخت ربات با ربات سازا امکانات پویایی در اختیارتون قرار نمیدن

    2. Omid گفت:

      سلام خسته نباشید
      من موقعی ک ب ربات دستور میدم اجرا نمیکنیه مینویسه sorry…
      دستوراتم شبیه این مینویسم بعد از طی کردن مراحلی کگفتین
      مثال
      Cht to robat_چت با ربات

      1. سلام، اگه منظورتون اینه که میخواین دستورات / ربات رو تنظیم کنین، باید بگم که پست رو کامل بخونین
        تو پست گفتیم که از – استفاده کنین اما شما از _ استفاده کردین
        و اگه منظورتون چیز دیگه ایه که بهتره واضح تر بیان کنین

    3. محمد گفت:

      سلام من رباتم رو ساختم حالا میخام تا یکی وارد گروه شد لینک من خودکار بیاد رو صفحه

      1. سلام، سه بار کامنت ارسال کردین پشت سرهم، خب باید بدونین که نظرات جای چت کردن نیس و بعد از اینکه نویسنده طی 24 الی 48 ساعت بخونه جواب میده
        درمورد سوالتون هم به کثرت تو توضیحات عرض کردیم که این چیزا مربوط به برنامه نویسی ربات میشن و تمامی مواردی که به بات فادر مربوط میشدن رو یکی یکی توضیح دادیم
        پست رو کامل بخونین

    4. سید گفت:

      سلام من یه ربات وردست درست کردم بعد اشتباهی پاکش کردم
      حالا جدید درست کردم ولی هرکاری میکنم فعال نمیشه،لطفا راهنمایی کنید

      1. سلام، بات فادر ربات رو فعال نمیکنه تنها اکانت ربات میسازه!
        و شما زمانی که پاک کردین و دوباره ساختین باید توکن جدید رو تو جایی که استفاده کردین دوباره تنظیمش کنین

        1. سید گفت:

          اون قسمتی که باید یه مطلبی از کانالم فوروارد کنم اسم ربات قبلی رو میزنه ومیگه این ربات به این کانال مختص شده وشما باید از این ربات استفاده کنید که من اشتباهی اون ربات را حذف کرده بودم ودیگه نمیشه فعالش کنم

        2. سید گفت:

          میشه راهنمایی کنید توکن جدید رو چطور میتونم دوباره فعال کنم؟

          1. مطلبی که تو این پست گذاشتیم درمورد بات فادره و اگه کامل بخونید متوجه میشید که بات فادر تنها یه اکانت ربات میسازه و بقیه‌ی چیزها به روند ساخت ربات مربوط میشن!
            من الآن نه میدونم که آیا شما خودتون ربات رو برنامه نویسی کردین و یا اینکه از ربات سازها استفاده کردین که در این صورت بحثش خارج از موضوع این پسته و ما نمیتونیم در مورد ربات سازهایی که دیگران ساختن توضیحی بهتون بدیم!