معرفی
روبیکا مجموعهای از APIها را در اختیار توسعهدهندگان قرار میدهد که با استفاده از آنها میتوان بات ایجاد و مدیریت کرد. برای استفاده از این APIها، مراحل زیر را دنبال کنید.
مراحل استفاده¶
- ۱. با استفاده از BotFather به آدرس BotFather@ در روبیکا، یک بات ایجاد کنید.
- ۲. توکن دریافتی را ذخیره کرده و در مراحل بعدی از آن استفاده کنید.
- ۳.
با استفاده از توکن مرحلهی قبل و متد مورد نظر، یک
URLبا قالب زیر ایجاد کرده و درخواست خود را با متدPOSTارسال کنید.
https://botapi.rubika.ir/v3/{token}/{method}
توضیحات¶
پس از ساخت بات در BotFather، برای اینکه بات شما از اقدامات کاربران (ارسال پیام، کلیک روی دکمهها و …) مطلع شود، دو روش اصلی وجود دارد:
start_id که از فراخوانی قبلی دریافت کردهاید، متد getUpdates را صدا بزنید.
Endpoint روی سرور خود، بهمحض وقوع هر رویداد مرتبط با بات (مانند ارسال پیام یا کلیک روی دکمه)، روبیکا اطلاعات رویداد را به آدرسی که مشخص کردهاید ارسال میکند.
updateBotEndpoint، آدرس سرور خود را به پلتفرم معرفی میکنید. پس از تنظیم Endpoint، در هر رویداد، هر زمان کاربر پیامی ارسال کند، پلتفرم یک درخواست POST شامل اطلاعات رویداد را (بر اساس نوع آن) در قالبهایی مانند Update، InlineMessage و … به Endpoint شما ارسال خواهد کرد.
توجه:
SSL (HTTPS) است، زیرا پلتفرم تنها به آدرسهای امن متصل میشود. Endpoint، امکان توقف موقت ارسال رویدادها توسط پلتفرم وجود دارد.
Endpointهای مجزایی تعریف شود که مهمترین آنها در ادامه معرفی شدهاند.
receiveUpdate¶
هر زمان کاربر پیامی ارسال کند یا دکمههای ChatKeypad (دکمههای پایین صفحه چت) را لمس کند، شما یک درخواست POST دریافت میکنید که بدنه آن شامل شیء Update است.
نمونه body :
{
"update": {
"type": "NewMessage",
"chat_id": "{chat_id}",
"new_message": {
"message_id": "{message_id}",
"text": "custom text",
"time": "1643122902",
"is_edited": false,
"sender_type": "User",
"sender_id": "{sender_id}",
"aux_data": {
"start_id": null,
"button_id": "{button_id}"
}
}
}
}
receiveInlineMessage¶
هرگاه کاربر روی InlineKeypad (دکمههای شیشهای زیر پیامها) کلیک کند، یک درخواست POST دریافت میکنید که بدنهی آن شامل شیء POST دریافت میکنید که بدنه (body) آن شامل شیء InlineMessage است.
نمونه body :
{
"inline_message": {
"sender_id": "{sender_id}",
"text": "custom text",
"location": null,
"aux_data": {
"start_id": null,
"button_id": "{button_id}"
},
"message_id": "{message_id}",
"chat_id": "{chat_id}"
}
}
بهطور کلی، انتخاب بین دو روش دریافت رویداد به شرایط زیر بستگی دارد:
-
روش getUpdates
مناسب برای پروژههای ساده، محیطهای توسعه یا زمانی که امکان راهاندازی سرور عمومی و
HTTPSوجود ندارد. این روش پیادهسازی سادهتری دارد، اما بهدلیل ماهیت دورهای درخواستها، دریافت رویدادها با تأخیر همراه است. -
روش تعریف Endpoint
مناسب برای پروژههای پایدار و در مقیاس
productionاست. در این روش، رویدادها بهصورت آنی و بدون تأخیر به سرور شما ارسال میشوند. استفاده از این روش مستلزم داشتن سرور با دامنه عمومی و پشتیبانی ازSSLاست.
Webhook بهدلیل کارایی بالاتر و دریافت بلافاصله رویدادها توصیه میشود.
زمانی که شما از طرف بات به شکل بالا Request را دریافت و پردازش
کردید، میتوانید با استفاده از
این متدها به آن پاسخ
دهید.