با سلام خدمت دوستان عزیزم
امروز میخواهم یکم درباره بات های تلگرام و نخوه ساخت آنها صحبت کنم که و شما را با آنها بیشتر آشنا کنم .
همانطور که می دانید Bot ها یک سری applications داخل تلگرام هستند که می توانید به وسیله ی ارسال پیغام (messages) , فرمان ها (commands ) و inline requests با آنها در تعامل باشید . Bot هایی که می نویسید را می توانید از طریق درخواست های HTTPS کنترل نمایید .
وقتی شما یک ربات می سازید این ربات می تواند به مدل های مختلفی به کاربران پاسخ گو باشد . عملن ربات تلگرام یه عامل اتصال بین شما و افراد داخل تلگرام می باشد و خودش به تنهایی کار خاصی را انجام نمی دهد.
کاربر ابتدا پیام را به ربات ارسال می کند , ربات پیام را به سرور های تلگرام ارسال می کند و شما قادر هستید با ۲ متد getupdates , setWebHook این پیام را از سرورهای تلگرام دریافت کنید و متوجه شوید که این پیام را چه کسی ارسال کرده و متن آن چیست .حالا شما پیام را تحلیل کرده و پاسخ متناظر با آن را برای تلگرام ارسال می کنید و تلگرام آن را از طریق ربات شما در اختیار کاربر قرار می دهد . پس فقط ساخت خالی ربات نتیجه دلخواه را به ما نمی دهد و باید با یکی از زبان های سمت سرور آن را شکل دهیم و مدیریت نماییم .
حالا یک سری از ابزار های تحت وب هم وجود دارند که این روند را برای شما ساده تر می نمایند .یعنی شما فقط در سایت مورد نظر یک اکانت می سازید و از طریق او سایت می توانید به مدیریت ربات یا گروه خود بپردازید و تا حد محدودی به نتیجه ی دلخواه نزدیک شوید .
روش long polling یا همان getUpdates به این صورت است که شما با استفاده از Token هربار به تلگرام درخواستی ارسال میکنید و آخرین پیام های کاربران به ربات را دریافت میکنید ولی در روش webhooks هر زمان کاربر پیامی به ربات تلگرام شما ارسال کند بلافاصله این پیام به آدرس webhook شما ارجاع داده میشود که در آن آدرس باید پیام دریافتی را تحلیل کرده و پاسخ متناسب را ارسال نمایید.
خب میشه گفت وب هوک یه ایونت هستش که وقتی اتفاقی در سیستم میفته برای url هایی که در سیستم تعریف شده اطلاعات و مقادیری ارسال میشه . که با استفاده از اون مقادیر کاربر شخص ثالث میتونه برنامه نویسی کنه و کارهایی که میخواد رو انجام بده .
با ربات های تلگرام چه کارهای می توان انجام داد ؟
- دریافت اطلاعیه ها و اخبار ویژه : یک بات می توانند مانند یک روزنامه هوشمند عمل کند و به محل انتشار اخبار , قسمت های مرتبط را برای شما ارسال نماید .
- ادغام شدن با سایر خدمات :بات ها می توانند به با استفاده از محتوای سرویس های خارجی , چت های شمارا غنی تر کرده .
Image Bot, GIF bot, IMDB bot, Wiki bot, Music bot, Youtube bot, GitHub bot - ایجاد ابزار سفارشی :بات ها می توانند به شما درباره چیز هاصی هشدار بدهند مانند پیش بینی آب و هوا, ترجمه کردن و ….
Markdown bot, Sticker bot, Vote bot (NEW), Like bot (NEW) - ساخت بازی های تک نفره و دو نفره :یک بات حتی می توانند شطرنج بازی کند و عنوان رقیبی برای شما باشد .
Trivia bot - ساخت سرویس های اجتماعی :
- تقریبا ربات های تلگرام هر کاری از دستشان برمی آید و این موارد تنها اندکی از توانایی های بات ها می باشد .
تفاوت بات ها با کاربران عادی در تلگرام :
- بات مانند کاربران عادی , وضعیت online یا نمایش آخرین زمان آنلاین شدن (last seen) ندارند و به جای آن , فقط یک برچسب به عنوان bot دارند .
- بات ها محدودیت ذخیره سازی (limited cloud storage) پیغام ها را دارند و ممکن است پیغام های قدیمی تر به مرور حدف شوند .
- بات ها نمی توانند شروع کننده مکالمه باشند پس یا باید کاربران آنها را داخل گروه ها ادد کنند و یا برای اولین بار به ربات ها پیغام دهند. کاربران می توانند برای پیدا کردن یک ربات خاص از لینک <telegram.me/<bot_username و یا نام کاربری (username) اون ربات استفاده کنند .
- نام کاربری (username) بات ها همیشه با bot ختم می شود . (مانندTriviaBot, @GitHub_bot@)
- زمانی که ربات ها را داخل یک گروه اضافه می کنید به صورت پیش فرض ربات ها نمی توانند تمام پیغام ها را دریافت کنند (برای دریافت تمام پیغام ها باید privacy-mode را تنظیم کنید )
ربات های تلگرام قادر به دریافت چه پیام هایی می باشند؟
ربات های تلگرام اگر در حالت تنظیمات پیش فرض قرار داشته باشند می توانند پیام های زیر را در یافت کنند:
- پیام هایی با وارد کردن اطلاعات به وسیله صفحه کلید به ربات ارسال می شوند.
- پیام هایی که کاربران با قرار دادن @robatname نام ربات همراه با @ ربات را مورد خطاب قرار می دهند.
- پیام هایی که با نوشتن دستورات عمومی مانند /start@robatname به طور اختصاصی به ربات پیامی را ارسال می کند.
- پیام هایی که ربات ها وقتی کسی به گروه می پیوندد و یا گروه را ترک می کند و یا شخصی تصویر و نام گروه را تغییر می دهد توسط ربات مشاهده می شود.
- با اضافه کردن ربات به گروه همه پیام های گروه تحلیل و در یافت نمی شوند مگر اینکه شما تنظیمات پیشفرض را تغییر داده باشید.
- ربات های تلگرام نمی توانند شروع کننده مکالمه با کاربران باشند ولی قابلیت در یافت پیام از سوی کاربران و پاسخ به کاربران را دارند.
اگر شما تنظیمات پیش فرض در قسمت privacy mode را غیر فعال کرده باشید قادر به دریافت همه پیام ها در گروه ها خواهید بود بجز پیام های زیر:
- پیام هایی که از سوی دیگر ربات ها دریافت می شوند.
- دستوراتی مربوط به ربات های دیگر مانند /start@NotYourBoat.
- دریافت پیام هایی که به ربات های دیگر فرستاده می شوند.
ساخت ربات تلگرام
برای ساخت ربات تلگرام یک ربات معرفی شده است به نام BotFather. شما میتوانید با طی کردن چند قدم ساده ربات خود را بسازید. پس از ایجاد آن یه کدهویت یا Authorization Token برای شما ارسال میشود که درگاه ارتباطی شما با API خواهد بود. برای ساخت ربات تلگرام به مفاهیم و اطلاعات زیر نیاز خواهید داشت:
با ربات BotFather ارتباط برقرار کنید، این ارتباط میتواند از طریق آدرس https://telegram.me/BotFather و یا نام کاربری BotFather@ آغاز گردد.
دستور /newbot را برای آن ارسال کنید و ربات پدر از شما نام و نام کاربری ربات را درخواست میکند، در پایان Token هویت را برای شما ارسال خواهد کرد.
- نام ربات (name) در لیست مخاطبان و توضیحات آن نمایش داده خواهد شد.
- نام کاربری (username) یک عبارت کوتاه است که برای تعیین لینک ربات و مخاطب قرار دادن آن توسط دیگران به کار میرود. این نام کاربری باید بین ۵ تا ۳۲ کاراکتر باشد و تنها میتواند شامل حروف انگلیسی، اعداد و خط زیر (_) باشد. نام کاربری ربات باید همیشه با کلمه bot تمام شود.
- توجه کنید که نام کاربری به حروف بزرگ و کوچک حساس است، مثلا شما میتوانید alihossein_bot یا Ali23bot را بعنوان نام کاربری خود انتخاب کنید.
- Token یک رشته از اعداد و حروف مانند ۱۱۰۲۰۱۵۴۳:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw است که برای ایجاد ارتباط میان شما و ربات بکار میرود.
- اگر به هر دلیل Token خود را فراموش کردید با ارسال دستور token/ به botfather یک کد جدید برای شما ارسال میشود.
سایر دستورات بسیار ساده بوده و عنوان آنها بیانگر کاری که انجام میدهند است.
- setname/ نام ربات تلگرام را تغییر میدهد.
- setdescription/ توضحیات مربوط به معرفی ربات را تعیین میکند که میتواند تا ۵۱۲ کاراکتر باشد، کاربران این متن را پس از شروع مکالمه با ربات شما مشاهده میکنند.
- setabouttext/ این متن که حداکثر میتواند ۱۲۰ کاراکتر باشد در پروفایل ربات نمایش داده میشود و هنگامی که کسی ربات تلگرام شما را به اشتراک میگذارد نیز در زیر نام نشان داده میشود.
- setuserpic/ برای تعیین عکس پروفایل ربات تلگرام استفاده میشود.
- setcommands/ برای تعیین دستورات جانبی و تکمیلی برای ربات شما استفاده میشود.
- setjoigroups/ این دستور برای تعیین قابلیت افزوده شدن ربات به گروه ها استفاده میشود. اگر ربات شما برای ارتباط در گروه ها طراحی نشده است میتوانید این قابلیت را غیرفعال کنید.
- setprivacy/ تعیین میکند که ربات شما چه پیام هایی را در گروه دریافت کند، اگر این گزینه غیرفعال شود ربات تمام پیام های ارسالی در گروه ها را دریافت و برای شما ارسال خواهد کرد.
- deletebot/ ربات شما را حذف کرده و این نام کاربری را آزاد میکند.
هک با ربات تلگرام
یکی از شایعاتی که در مورد ربات ها تلگرام گفته میشود آن است که به اطلاعات شخصی شما دسترسی دارند و ممکن است برای جاسوسی از شما بکار گرفته شوند، اگر یک نگاه سطحی به خروجی های API داشته باشید متوجه خواهید شد که امکان هک کردن کاربران از طریق ربات تلگرام وجود ندارد.
اولا ربات ها تنها زمانی به شما دسترسی خواهند داشت که با آنها ارتباط برقرار کرده باشید، یعنی پیامی با آنها ارسال کرده باشید. ثانیا از هر کاربر نام، نام خانوادگی، شناسه کاربری و آی دی کاربری برای ربات قابل دسترس خواهد بود، این اطلاعات تنها برای ایجاد ارتباط ربات با شما در دسترس آن می باشد. علاوه بر اینها ربات ها به تصویر شما نیز دسترسی دارند، البته امکان ذخیره آن از روی سرورهای تلگرام را نخواهند داشت و تنها میتوانند تصویر را برای شما یا کس دیگری ارسال کنند.
پس تمامی اطلاعاتی که به ربات تلگرام ارسال میشود، به راحتی و با افزودن شماره تماس شما به لیست مخاطبان یک فرد قابل دسترسی است. هیچ گونه دسترسی به اطلاعات گوشی، مکالمات شما با دیگران و یا هر نوع دیتای دیگری برای ربات ها وجود ندارد.
خب تو این جلسه سعی کردم شما را با ربات تلگرام آشنا کنم و در جلسه ی بعدی انشالله به معرفی متدهای ساخت ربات تلگرام می پردازیم.
خب مقاله امروز هم به پایان رسید.خوشحال میشم مثل همیشه نظراتتون رو اعلام کنید.
در روزهای آینده آموزش های بیشتر درسایت قرار میگیره پس با ما همراه باشید