دستور از نوع دریافت از کاربر

ابتدا از قسمت ساختار ربات -> منو و دستورات، یک دستور از نوع دریافت از کاربر بسازید.
در قسمت آدرس لینک API آدرس مورد نظر خود را وارد کنید( آدرسی که اسکریپت مربوطه شما در آن قرار دارد).

استفاده از API در دستور دریافت

هر وقت که کاربر با استفاده از این دستور محتوایی را به ربات ارسال کند، یک درخواست از طرف سیستم به آدرس وارد شده ارسال میشود.
درخواست ارسالی به صورت POST بوده و دارای محتوای از نوع JSON میباشد.


$data = json_decode(file_get_contents('php://input'), true);

نمونه کد JSON دریافتی

{
"botId": 7,
"commandId": 1763,
"commandName": "api test",
"msg": {},
"data": {}
}
  • botId : کد ربات شما در سیستم دومینوبات.
  • commandId : کد دستور API ای که در سیستم ساخته اید و کاربر در ربات اجرا کرده است.
  • commandName : عنوان دستور API ای که در سیستم ساخته اید و کاربر در ربات اجرا کرده است.
  • msg : پیامی که از طرف تلگرام به سرور دومینوبات ارسال شده. مستندات کامل پیام در ربات تلگرام
  • data : محتوایی دستور دریافت و سفارشات فروشگاهی.

نمونه data دریافتی :

"data": {
"date": 1557575630,
"fields": [
{
"type": "contact",
"text": "لطفا پیام خود را وارد کنید :",
"contentId": null,
"id": 0,
"title": "پیام",
"value": {
"phone_number": "+989355801034",
"first_name": "Farhad",
"last_name": "Adeli",
"user_id": 121739205
}
}
]
}
  • date : تاریخ دریافت (unix timestamp)
  • fields : ارایه ای از قیلد های دستور دریافت

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

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

{
"userId": 0,
"messages": []
}
  • messages : یک آرایه از جواب های مورد نظر شماست.
  • userId : کد تلگرامی کاربری که میخواین پیام براش ارسال بشه. برای درخواست هایی که از طرف خود ربات اومدن این مورد لازم نیست و از طرف خود سیستم ست میشه. برای درخواست هایی که خودتون مستقیما انجام میدین درصورتی که داخل خود پیام کد کاربری رو ست نکرده باشین از این کد استفاده میشه.

نمونه یک جواب

{
"userId": 0,
"text": "Text Message",
"file": {
"data": "file url",
"type": "photo"
},
"options": {
"reply_markup": {
"keyboard": [
[
"btn 1",
"btn 2"
]
],
"inline_keyboard": [
[
{
"text": "execute command",
"callback_data": "\/comID"
},
{
"text": "show item",
"callback_data": "\/itemID"
},
{
"text": "url",
"url": "https:\/\/dominobot.ir"
}
]
]
}
}
}
  • userId : کد تلگرامی کاربری که میخواین پیام براش ارسال بشه. برای درخواست هایی که از طرف خود ربات اومدن این مورد لازم نیست و از طرف خود سیستم ست میشه. برای درخواست هایی که خودتون مستقیما انجام میدین درصورتی که کد کاربری گلوبال رو ست نکرده باشین از این کد استفاده میشه.
  • text : پیام متنی
  • file : پیام فایلی
  • options.reply_markup : این گزینه اختیاریست و میتواند در جواب نباشد. برای نمایش کیبورد ربات استفاده میشود.
  • keyboard : نمایش کیبورد در پایین ربات. ساختار این کیبورد به صورت یک آرایه از سطر های کیبورد میباشد. هر سطر یک ارایه از دکمه های مورد نظر شما است. هر دکمه یک متن کوتاه میباشد.
  • inline_keyboard : نمایش کیبورد شیشه ای زیر محتوای ارسالی. ساختار این کیبورد به صورت یک آرایه از سطر های کیبورد میباشد. هر سطر یک ارایه از دکمه های مورد نظر شما است. هر دکمه یک آبجکت شامل متن دکمه و عملکرد آن است.
  • callback_data : توضیحات کامل فرمت این قسمت در بخش توضیحات دکمه شیشه ای در ساخت محتوا موجود است.
نکته : در هر جواب فقط یک نوع پیام قابل ارسال است. متن یا فایل.
نکته : در هر جواب فقط یک نوع کیبورد قابل استفاده است.

نمونه جواب متنی

{
"text": "Text Message 1",
"options": {
"reply_markup": {
"keyboard": [
[
"btn 1",
"btn 2"
]
],
"inline_keyboard": [
[
{
"text": "execute command",
"callback_data": "\/comID"
},
{
"text": "show item",
"callback_data": "\/itemID"
},
{
"text": "url",
"url": "https:\/\/dominobot.ir"
}
]
]
}
}
}
  • text : متن ارسالی به کاربر

نمونه جواب عکس داخل متن

{
"text": "<a href='http:\/\/dominobot.ir\/img\/help\/api-command.png'>&#160;<\/a> inline image sample"
}

&#160; : یک کاراکتر نامرعی است.


نمونه جواب فایل

{
"file": {
"data": "http:\/\/dominobot.ir\/img\/help\/api-command.png",
"type": "photo"
}
}
  • data : آدرس فایل که باید به صورت عمومی قابل دسترسی باشد. فایل توسط سرور دومینو خوانده شده و به سرور تلگرام stream خواهد شد.
  • type : یکی از انواع فایل های قابل قبول برای تلگرام. photo , audio, video, document, animation, voice, videoNote


جمع بندی

$response = [
'messages' => [
[
'text' => 'Text Message 1',
'options' => [
'reply_markup' => [
'keyboard' => [
[
"btn 1",
"btn 2",
],
],
'inline_keyboard' => [
[
[
'text' => 'execute command',
'callback_data' => "/comID"
],
[
'text' => 'show item',
'callback_data' => "/itemID"
],
[
'text' => 'url',
'url' => "https://dominobot.ir"
],
],
],
],
],
],
[
'text' => 'Text Message 2, this is optional!',
],
[
'text' => "<a href='http://dominobot.ir/img/help/api-command.png'>&#160;</a> inline image sample",
],
[
'file' => [
'data' => 'http://dominobot.ir/img/help/api-command.png',
'type' => 'photo'
],
],
],
];

$response = json_encode($response);
print $response;

بازگشت به صفحه api