چگونه ربات تلگرام بسازیم؟

ساخت ربات تلگرام یا Telegram Bot بسیار آسان است ولی برای استفاده از امکانات آن حتما باید دانش اندکی از برنامه نویسی داشته باشید.  شما به راحتی با طی چند قدم ساده و استفاده از رباتی به نام @BotFather می توانید ربات خود را بسازید. پس از اتصال به این ربات یک کد هویت یا Authorization Token برای شما ارسال می شود که درگاه ارتباطی شما با API خواهد بود. از این پس شما به راحتی می توانید با ربات خود ارتباط برقرار کنید و آن را مدیریت کنید.

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

در مثال های زیر دو نمونه از ربات هایی که به زبان php ساخته شده است قابل مشاهده می باشند.

  • ربات Hello Bot تلگرام که رباتی بسیار ساده می باشد.
  • ربات پیشرفته @MedaNet_bot که برای آگاهی از قیمت تعرفه خدمات مدانت ساخته شده است.

همچنین شما با مراجعه به مرکز آموزش سایت تلگرام می توانید ربات های متنوعی که با زبان های برنامه نویسی مختلف نوشته شده است را مشاهده کنید. به تازگی سایت هایی گوناگون برای معرفی ربات های تلگرام راه اندازی شده است که محبوب ترین آنها Storebot.me می باشد. البته این سایت هیچ وابستگی به شرکت تلگرام نداشته و بصورت مستقل راه اندازی شده است.

 

نمونه صفحه اختصاصي

فروشگاه ربات تلگرام

آیا می توانیم امکانات بیشتری به ربات تلگرام افزود؟

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

ربات های تلگرام قادر به دریافت چه پیام هایی می باشند؟

ربات ها تلگرام اگر در حالت تنظیمات پیش فرض قرار داشته باشند می توانند پیام های زیر را در یافت کنند:

  • پیام هایی با وارد کردن اطلاعات به وسیله صفحه کلید به ربات ارسال می شوند.
  • پیام هایی که کاربران با قرار دادن @robatname نام ربات همراه با @ ربات را مورد خطاب قرار می دهند.
  • پیام هایی که با نوشتن دستورات عمومی مانند /start@robatname به طور اختصاصی به ربات پیامی را ارسال می کند.
  • پیام هایی که ربات ها وقتی کسی به گروه می پیوندد و یا گروه را ترک می کند و یا شخصی تصویر و نام گروه را تغییر می دهد توسط ربات مشاهده می شود.
  • با اضافه کردن ربات به گروه همه پیام های گروه تحلیل و در یافت نمی شوند مگر اینکه شما تنظیمات پیشفرض را تغییر داده باشید.
  • ربات های تلگرام نمی توانند شروع کننده مکالمه با کاربران باشند ولی قابلیت در یافت پیام از سوی کاربران و پاسخ به کاربران را دارند.

اگر شما تنظیمات پیش فرض در قسمت privacy mode را غیر فعال کرده باشید قادر به دریافت همه پیام ها در گروه ها خواهید بود بجز پیام های زیر:

  • پیام هایی که از سوی دیگر ربات ها دریافت می شوند.
  • دستوراتی مربوط به ربات های دیگر مانند /start@NotYourBoat.
  • دریافت پیام هایی که به ربات های دیگر فرستاده می شوند.

چرا ربات های تلگرام قادر به دریافت پیام های دیگر ربات ها نیستند؟

اگر ربات ها قادر به دیدن پیام های یکدیگر باشند این امکان وجود دارد که داخل یک حلقه ناخواسته شوند و در عملکرد ربات ها مشکل بوجود بیاید.

چگونه پیام کاربران به ربات تلگرام خود را مشاهده کنیم؟

در حال حاضر دو راه برای بروز رسانی ربات های تلگرام وجود دارد استفاده از long polling یا Webhooks. ولی باید به این نکته دقت کنید که هرگز امکان این وجود ندارد که از هر دو ابزار همزمان استفاده کنید.

روش long polling یا همان getUpdates به این صورت است که شما با استفاده از Token هربار به تلگرام درخواستی ارسال میکنید و آخرین پیام های کاربران به ربات را دریافت میکنید ولی در روش webhooks هر زمان کاربر پیامی به ربات تلگرام شما ارسال کند بلافاصله این پیام به آدرس webhook شما ارجاع داده میشود که در آن آدرس باید پیام دریافتی را تحلیل کرده و پاسخ متناسب را ارسال نمایید.

چگونه در Long polling تعداد دریافت را محدود کنیم؟

استفاده از تابع getUpdates برای دریافت بروز رسانی های جدید سبب می شود که ۱۰۰ پیام آخر کاربران برایتان ارسال شود با استفاده از پارامتر offset این مشکل بر طرف می شود. یعنی شما میتوانید درخواست کنید که از پیام شماره X به بعد فقط برای شما ارسال گردد. برای این کار شما باید شماره آخرین آپدیتی که از تلگرام گرفته اید را در جایی ذخیره کرده و همیشه یک عدد بالاتر از آن را درخواست کنید.

offset = update_id of last processed update + 1

استفاده از پارامتر offset سبب می شود update_id هایی که کمتر یا مساوی offset می باشند به عنوان تایید شده در نظر گرفته شوند و دوباره ارسال نشوند.

استفاده از Webhooks چه محدودیت هایی دارد؟

اگر شما با موفقیت Webhooks را نصب کرده اید ولی در دریافت بروز رسانی با مشکل مواجه هستید موارد زیر را اصلاح کنید.

  • شما برای کار با Webhooks باید بر روی سرور خود یک گواهی نامه معتبر ssl نصب کنید.
  • اگر می خواهید از گواهی self-signed استفاده کنید شما باید public key certificate با فرمت inputfile را آپلود کنید.
  • در حال حاضر Webhooks از پورت های ۴۴۳, ۸۰, ۸۸, ۸۴۴۳٫ پشتیبانی می کند.

بررسی صحت تنظیم Webhooks

برای اطمینان از اینکه دستوراتی که از Webhooks دریافت می شوند از سوی تلگرام میباشند, شما میتوانید یک آدرس اختصاصی مانند ww.example.com/your_token مشخص کنید و از آن جا که هیچ فردی کد هویت شما را نمی داند شما مطمئن هستید که پیام های دریافتی از سوی تلگرام می باشند. در تصویر زیر یک نمون از پاسخ دهی لحظه ای ربات به پیام کاربر را مشاهده میکنید.

webhook در ربات تلگرام

استفاده از webhook به شما این امکان را میدهد تا به سرعت پیام کاربران را پاسخ دهید ولی برای استفاده از آن حتما باید گواهینامه امنیتی SSL داشته باشید که مستلزم پرداخت هزینه است.

چگونه توسط ربات تلگرام فایل دانلود کنیم؟

شما به راحتی با استفاده از متد getFile می توانید تا ۲۰۰MB فایل از طریق ربات خود دانلود کنید. با این روش شما id فایل را به تلگرام ارسال کرده و لینک دانلود آن از سرور تلگرام برای شما در پاسخ ارسال میشوذ. تا یک ساعت امکان استفاده از این لینک را خواهید داشت و پس از آن باید مجددا درخواست لینک کنید.

چگونه فایل با حجم زیاد توسط ربات تلگرام آپلود کنیم؟

در حال حاضر این امکان در ربات های تلگرام وجود دارد که تا ۵۰ MB فایل آپلود و ارسال کنید و امیدواریم این مقدار در آینده افزایش یابد. برای این روش شما میتوانید یکی از متدهای sendPhoto یا sendDocument را استفاده کنید که اولی برای ارسال عکس و دومی برای ارسال فایل می باشد.

آیا file_ids ها پس از ارسال و دریافت فایل از بین می روند؟

در حال حاضر پس از ارسال چندین هزار فایل file_ids ها ی فایل های خروجی ربات مجدا تنظیم می شوند ولی در آینده این ویژگی می تواند تغییر کند.

ربات تلگرام چه محدودیت هایی در ارسال دارد؟

هنگام ارسال پیام در یک صفحه سعی کنید از ارسال بیش از یک پیام در ثانیه جلوگیری کنید. اگر چه این امکان وجود دارد که در هر ثانیه پیام های زیادی ارسال کنید ولی سبب می شود که خطای ۴۴۹ دریافت کنید.

اگر شما در حال ارسال تعداد زیادی پیام به کاربران مختلف هستید. API این اجازه را به شما نمی دهد که در هر ثانیه بیشتر از ۳۰ پیام را ارسال کنید.

چگونه یک پیام را به تمام کاربران ربات خود ارسال کنیم؟

متاسفانه در حال حاضر امکان فرستادن پیام به تعداد زیادی کاربر وجود ندارد ولی این امکان ممکن است در آینده بوجود آید. به منظور عدم برخورد با محدودیت های تلگرام و عدم برخور با خطا بهتر است هنگام فرستادن پیام به تعداد زیادی از کاربران، سعی کنید پیام ها را با فاصله زمانی ۸-۱۲ ساعت بفرستید. API اجازه این را نمی دهد که بیش از ۳۰ پیام به کاربران مختلف را در هر ثانیه ارسال کنید و اگر این کار را انجام دهید شما در آستانه دریافت خطای ۴۲۹ خواهید بود.

امیدواریم این مقاله  تله ليست در برگیرنده پاسخ سوالات شما در خصوص ربات تلگرام باشد. اگر هنوز هم با سوالاتی در این مورد مواجه هستید در بخش نظرات پاسخ گوی سوالات شما خواهیم بود

error: همه چيز در ديد شماست نيازي به کپي نيست!