تلگرام یک پیامرسان است که بواسطه ایدههای بکر تمام نشدنیاش، رشد خیرهکنندهای از ابتدای کار (سال ۲۰۱۳) تاکنون داشته است و هماکنون بیش از ۲ میلیارد پیام در روز را ارسال میکند (منبع).
جالب اینجاست که ایرانیان، بیشترین رغبت را نسبت به تلگرام نشان دادهاند طوری که طبق آمار سایت الکسا، ۲۵ درصد ترافیک تلگرام به ایرانیان اختصاص یافته است.
با توجه به open source بودن مکانیزم احراز هویت و تبادل اطلاعات تلگرام، از ابتدا برنامهها و رباتهای اتوماتیکی ساخته شده بود اما به دلیل سطح بالا بودن API تلگرام، تعداد بسیار اندکی ربات ساخته شد.
اما تلگرام ۳ هفته قبل، یک API سادهتر برای ساخت روباتها ارائه کرد که خودش آن را «انقلاب روباتها» نامید و رشد انفجاری تعداد روزافزون روباتهای تلگرام در این سه هفته، تائید کننده صحت این نامگذاری است.
رباتهای تلگرام وظیفه اتصال کاربر به سازنده روبات را در محیط تلگرام برعهده دارند.
این رباتها با یک URL (که توسط سازنده ربات به تلگرام معرفی شده)، با سازنده ربات در ارتباط هستند. ارتباط روبات با کاربر، نمیتواند توسط روبات شروع شود و حتما باید اولین بار کاربر یک روبات را Start بزند. بنظر میرسد که این تمهید برای جلوگیری از گسترش Spam ها اندیشیده شده است.
زمانی که کاربر، متنی به عنوان پیام برای ربات ارسال میکند، سازنده ربات میتواند با دو روش متمایز RestFull API یا Webhook از این پیام مطلع شود و پس از اطلاع، میتواند بلافاصله به آن پاسخ دهد یا پاسخ به آن را به زمانی در آینده موکول کند.
یکی ار برگهای برنده تلگرام، امکان ارسال هر نوع فایلی تا حجم ۱٫۵ گیگابایت (برای هر فایل) است. این قابلیت موجب شد بسیاری از افراد متخصص در رشتههای مختلف که نیاز روزانه و مستمر به تبادل فایل مرتبط با فعالیتشان دارند، تلگرام را جایگزین ایمیل کنند.
رباتها نیز از این قابلیت شگرف بهرهمند هستند و میتواند انواع فایلها (متن، فایل صوتی، تصویری و …) را به کاربر ارسال کند. اما از سمت کاربر به ربات، در حال حاضر فقط متن میتواند ارسال شود و فایل ارسالی از کاربر به ربات، توسط ربات قابل دستیابی نیست (اما قابل بازارسال به کاربر دیگر هست) هرچند تلگرام وعده امکان دسترسی به فایلهای دریافتی روباتها را در آینده نزدیک نیز داده است.
همانطور که اشاره شد، یک روبات میتواند با بلافاصله به درخواست کاربر پاسخ دهد که کاربردهای وسیعی دارد. رباتهایی هستند که حسب عبارت درخواستی و دستور کاربر، در یک دیتابیس جستجو میکنند و نتایجی متنی یا فایل صوتی، تصویری و … را برمیگردانند. رباتهایی که جنبه نظرسنجی یا برگزاری آزمون آنلاین و امثال آن را دارد و …
اما برخی روباتها نیز ارسال مطلب به کاربر به موکول کردن به آینده میکنند که این حالت هم کاربردهای جالب خودش را دارد. مثلا ارسال مطالب تفریحی، فرهنگی و … در فواصل زمانی منظم (روزانه یا هفتگی) است یا در زمان آماده شدن آن است. مثلا برخی روباتها مترصد آپدیت سایتهای مطلوب کاربر و فید آنها میشوند تا هر زمان که آپدیت شد، به کاربر اطلاع دهند. سایت شخصی شما نیز میتواند قطعهکد یا پلاگینی داشته باشد که پس از درج مطلب توسط شما در سایتتان، همان مطلب را توسط ربات تلگرام به اعضایی که قبلا با آن ربات در ارتباط بودهاند، ارسال نماید.
علاوه بر کاربردهای فوق، کاربردهای هوشمندانه دیگری نیز میتوان برای آن ابداع کرد. این کاربردها به دلیل وجود chat id است که تلگرام در اختیار روبات قرار میدهد. با استفاده از chat id مطالب دریافتی هر کاربر میتواند منحصر به آن فرد شود نه همه کاربران آن ربات. با کمک این نکته کاربردهای زیادی میتوان تعریف کرد. مثلا رباتهای تلگرامی میتوانند جایگزین دریافت اطلاعات، گزارشات و … ای باشد که تاکنون کاربر بر روی ایمیل با پیامک دریافت میکرده است. (خصوصا که دریافت روی پیامک، هم برای ارسال کننده و هم برای دریافت کننده ی پیامک دارای هزینه و مشکلات و محدودیتهایی میباشد)
همچنین پیشبینی میکنم در آینده نزدیک، تجارت الکترونیک نیز با روباتهای تلگرامی رایج شود. روباتهایی که برخی خدمات یا کالاها (خصوصا فایلهای دیجیتال) را در ازاء پرداخت مبلغی معین به کاربر ارائه کنند. پرداختی که با کمک یک کد USSD منحصر به آن خرید، به سادگی و با یک کلیک از طریق موبایل کاربر قابل انجام خواهد بود.
ساخت روبات برای تلگرام
برای ایجاد یک روبات چه هزینههایی لازم است؟
پاسخ: هزینه برنامهنویسی + هزینه هاست
برای ایجاد یک روبات، نیاز به مقداری برنامهنویسی دارید که با API روباتهای تلگرامی ارتباط برقرار کنید.
بجز برنامه نویسی چطور؟ آیا هاست لازم است؟
پاسخ: با توجه به انتظار شما از ربات، ممکن است هاست نیاز باشد یا نباشد.
۱) اگر بخاهید روبات شما قابلیت پاسخ بلافاصله به کاربر را داشته باشد، لازم است یک فضا در اینترنت داشته باشید و سرویس webhook خود را با API تلگرام فعال کنید. سرور موردنیاز برای این کار نیز باید متناسب با تعداد درخواست مخاطبین ربات شما باشد. مثلا برای یک ربات ساده و تفننی، یک هاست اشتراکی ارزان یا حتی رایگان کافی است اما برای رباتی که بخواهد به کاربر فایلهای سنگین دریافت کند (یا در آینده نزدیک دریافت کند) و روی آنها هم پردازش خاصی انجام دهد یا رباتی که چندصدهزار درخواست در ساعت را باید پاسخگو باشد، یک سروری اختصاصی و مجزا نیاز است.
۲) اما اگر ربات شما نخواهد بلافاصله پاسخ دهد بلکه مثلا یک روبات خبرنامهای است که کاربران فقط باید دکمه start را بزنند تا عضویتش در آن تائید شود و بعدا در زمانهایی که شما خواستید، مطالب را به کاربران عضوشده ارسال کنید، نیازی به سرور نیست و با یک برنامه تحت سیستمعامل هم میتوانید هر زمانی که نیاز بود، به اینترنت وصل شوید و به تمام کسانی که دکمه Start ربات شما را زدهاند، مطالب جدید را بفرستید یا به کسانی که در ربات شما سوال خاصی را خطاب به شما مطرح کردهاند، پاسخ مختص آن فرد را ارسال کنید. در این حالت نیاز نیست هزینهای برای هاست پرداخت کنید.
آیا بدون صرف هزینه میتوان صاحب یک روبات شد؟
پاسخ: بله
مثلا سرویس آنلاین paquebot.io برای همین منظور ایجاد شده است و اتفاقا رباتهای ساده زیادی با اینگونه سرویسها ساخته شده است اما چند نکته منفی در اینجا وجود دارد:
۱٫ رباتهایی که با این روش ایجاد میشود بسیار ساده و تفننی هستند و فاقد قابلیتهای رباتی هستند که برنامهنویسی شده است.
۲٫ رباتهایی که با این روش ایجاد شده (حسب تجربه شخصی نویسنده در تعامل با آنها) کند بوده و به درخواست کاربر دیر جواب میدهد و گاهی جواب نمیدهد!
۳٫ کاربرانی که شما با تلاش خود برای ربات خود جمع کردهاید، میتواند به سادگی توسط ارائهدهنده سرویس رایگان برای ارسال تبلیغات و … مورد سوء استفاده قرار گیرد.
آیا کاربر برای کار با روبات همواره باید دستورات خاصی را تایپ کند؟
۱) صفحه کلید جایگزین: این صفحه کلید توسط برنامهنویس تعریف میشود و یک نمونه تصویر از آن را در ابتدای همین پست میبینید. این صفحه کلید در وسایل دارای صفحات لمسی، جایگزین صفحه کلید مجازی خود وسیله میگردد و در نسخه تحت وب تلگرام، به صورت لینکهایی در زیر ورودی متن ظاهر میشود که کاربر میتواند روی آن کلیک کند. حتی برای شروع نیز لازم نیست دستوری تایپ کنید و تلگرام دکمه Start را برای این منظور به شما نشان میدهد.
ممکن است بگویید دستورات چه خاصیتی دارد و چه نیازی به وجود آنها هست؟
اگر بخواهید که روبات شما علاوه بر شخص، با گروههای تلگرامی نیز تعامل داشته باشد، لازم است از دستورات بهره ببرد چرا که تلگرام برای حفظ حریم خصوصی افراد فعال در گروه، اجازه دسترسی به نوشتههای گروه را به رباتی که خود یکی از اعضای گروه است، نمیدهد و تنها نوشتههایی که با اسلش شروع شده باشد و حاوی دستورات از پیش تعریف شده ی آن ربات باشد، به آن ربات ارسال میگردد.
در پایان برای تکمیل مطلب این نکته را ذکر میکنم که این سیاست حریم خصوصی ربات در گروه که اشاره شد و همچنین عدم امکان دریافت فایل توسط ربات و سایر محدودیتهای رباتها، مربوط به رباتهایی هستند که بعد از «انقلاب رباتها» و با API تسهیلشدهی تلگرام ایجاد شده باشند اما رباتهایی که با API پیچیده خود تلگرام نوشته شده باشند، مانند یک کاربر عادی عمل میکنند و تمام دسترسیها و کارهایی را که یک کاربر عادی دارند، خواهد داشت. یعنی مثل روبات clippy میتواند فایل ارسالی کاربر را دریافت کند و به آن دسترسی پیدا کند یا مثل آن روبات (که اسم نمیبرم) در گروهها عضو شود و به تمام مطالب نوشته شده در گروهها دسترسی داشته باشد و آنها را بلافاصله روی وب برای همگان منتشر کند.