مستندات ربات تلگرام : وبهوک و دریافت بروزرسانی

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

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

برای اینکه بتونید داده هارو پردازش و دستوراتی رو ارسال و دریافت کنید یا باید برنامه نویسی کنید یا از سرویس های ربات ساز استفاده کنید.

از اونجایی که مطلب ما درمورد برنامه نویسی هستش پس درمورد ربات ساز توضیحی نمی دیم.

برای اینکه کاربر از ربات ما جوابی دریافت کنه , نیاز داریم داده ارسالی توسط کاربر رو دریافت کنیم.

تلگرام دو راه رو برای دریافت آپدیت(بخونید داده) برای ما پیشنهاد کرده.

یکی getUpdates هست و یکی وبهوک (Webhook) حالا چه فرقی باهم دارن ؟

در getUpdates شما باید هربار یک درخواست ارسال کنید تا آپدیت هارو دریافت کنید و خروجی اون یک آرایه به صورت json می باشد مانند تصویر :(پارامترهای تصویر رو در آخر توضیح میدم)

در تصویر بالا من از قبل چند متن برای ربات ارسال کردم و با استفاده از یک درخواست پیام هارو دریافت کردم. همانطور که می بینید result در تصویر بالا 5 آرایه داره که پیام های ربات هستند و من یکی از پیام هارو برای شما به نمایش گذاشتم.

اما وبهوک چیه ؟

در روش وبهوک , ما یک آدرس رو برای تلگرام ارسال می کنیم که آپدیت هارو به اون بفرسته.

هروقت کاربری متن و سایر پیام هارا به ربات ارسال میکنه دیگه نیاز نیست ما هربار یک درخواست به تلگرام ارسال کنیم.

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

چه داده هایی برای ما ارسال میشه ؟

این داده ها(پارامترها) در وبهوک و getupdate یکیه و به صورت json برای ما ارسال خواهد شد.

برای مشاهده پارامتر هایی که برای ما ارسال میشن به لینک https://core.telegram.org/bots/api#update سر بزنید.

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

update_id:

این پارامتر یک شناسه غیرتکراری و عدد صحیح برای هر آپدیت هستش

message:

این پارامتر اطلاعات پیام مانند متن,ایدی کاربر و.. نمایش میده

edited_message:

موقعی که یک پیام ویرایش بشه این پارامتر ارسال میشه.

channel_post:

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

edited_channel_post:

موقعی که یک پیام در کانال ویرایش بشه این پارامتر ارسال میشه

inline_query:

موقعی که درخواست به صورت اینلاین ارسال بشه این پارامتر برای شما فرستاده خواهد شد.

callback_query:

موقعی که روی دکمه شیشه ای ضربه ای زده بشه این پارامتر برای شما ارسال خواهد شد.

poll:

هروقت پیامی نظرسنجی باشه این پارامتر برای شما ارسال میشه

poll_answer:

پاسخ های نظرسنجی هستش.

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

برای ارسال درخواست به تلگرام مانند توضیحی که خود تلگرام داده : https://core.telegram.org/bots/api#making-requests ساختار کلی درخواست به شکل :

https://api.telegram.org/bot<token>/METHOD_NAME

هستش که به جای <token> توکن خودمان و به جای METHOD_NAME نام متد رو قرار میدیم.

برای مشاهده متد های تلگرام به آدرس https://core.telegram.org/bots/api#available-methods سر بزنید.

یکی از نمونه متدی که در این مطلب بااون آشنا شدید متد getupdate هستش که شکل درخواست این متد مانند شکل زیر هست :

https://api.telegram.org/bot<token>/getupdate

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

در پست های بعدی درمورد هر متد توضیح خواهم داد.



پست های مرتبط :