پیام رسان گپ با ایجاد بستر مدرن ارتباطی این امکان را برای توسعه دهندگان فراهم کرده است که بتوانند به راحتی ایده های تجاری و خدماتی خود را ایجاد کرده و محتوا، خدمات و اپلیکیشن های خود را بر بستر پیام رسان گپ و یا با تکیه بر قابلیت های زیرساخت گپ در اختیار مخاطبین قرار دهند. برای این کار توسعه دهنده می تواند از طریق پرتال کسب و کار گپ، ربات مورد نظرش را ایجاد و آن را به پروژه خودش متصل نماید.
یک ربات هواشناسی را فرض کنید که کاربران با ارسال نام شهر قصد دارند از وضعیت آب و هوای چند روز آینده آن شهر مطلع شوند . برای این کار کافیست کاربران اسم شهر مورد نظر را در ربات شما ارسال کنند و شما در برنامه خود و با استفاده از API توسعه دهندگان پس از دریافت نام شهر وضعیت آب و هوای آن را از طریق سایت های هواشناسی پیدا کرده و سپس به شکل متن یا تصویر برای کاربر ارسال کنید.
بطور کلی رباتها به دو دسته تعاملی و اطلاع رسانی تقسیم میشوند که در جدول ذیل مشاهده میکنید:
| نوع بات | نحوه ارسال محتوا | توضیحات |
|---|---|---|
| تعاملی | - | ربات تعاملی، بصورت دو طرفه است و قابلیت ارسال و دریافت پیام را دارد. |
| اطلاع رسانی | گروهی | ربات اطلاع رسانی گروهی، عملکردی مشابه کانال دارد و فقط مدیر ربات امکان ارسال پیام به کاربران را دارد. |
| اطلاع رسانی | فردی | ربات اطلاع رسانی گروهی، دقیقا مانند ربات اطلاع رسانی گروهی است با این تفاوت که مدیر ربات میتواند برای هر کاربر پیامی اختصاصی ارسال کند. در حقیقت یک کانال خصوصی بین مدیر و کاربر است. |
پیام رسان گپ با استفاده پنل مدیریتی که برای توسعهدهندگان ایجاد کرده است این امکان را به توسعهدهندگان میدهد تا به راحتی رباتهای خود را ایجاد کنند و از آن استفاده کنند. برای شروع کار با رباتها باید نخست از طریق آدرس زیر به پرتال کسب و کار وارد شده و سپس روی گزینه بات پلتفرم کلیک کنید.

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

بصورت کلی اگر ربات شما عملکردی مشابه کانال دارد، بهتر است ربات را از نوع اطلاع رسانی و نحوه ارسال محتوا را گروهی انتخاب کنید، و اگر شما قصد ایجاد یک ربات دو طرفه(امکان ارسال و دریافت پیام) را دارید بهتر است نوع ربات تعاملی انتخاب شود.
در صورت تکمیل صحیح اطلاعات مورد نیاز، هنگام ایجاد ربات، مرورگر شما را به لیست رباتهایی که ایجاد کردهاید، هدایت میکند که در این صفحه میتوانید با کلیک روی آیکن ، جزئیات ربات و توکن مورد نیاز برای ارتباط با آن را مشاهده، کپی و یا تغییر دهید.
به طور کلی روال کار با API به دو بخش ارسال اطلاعات کاربر (عضویت در ربات و پیامهای ارسالی کاربر) به برنامه توسعه دهندگان و دیگری ارسال از برنامه توسعه دهندگان به کاربران گپ تقسیم میشود.
روال دریافت به این گونه است که هنگامی که کاربران اقدام به عضویت در ربات شما میکنند و
یا متن، تصویر، فایل و ویدئویی را از داخل ربات برای شما ارسال میکنند، API اطلاعات
دریافتی را
با یک درخواست به صورت POST به مسیری که در هنگام ایجاد ربات در سیستم
ثبت شده است (لینک خارجی)، ارسال میکند.
و همچنین روال ارسال از برنامه توسعه دهندگان نیز به این شکل است که یک درخواست از برنامه توسعه دهنده به API گپ ارسال میشود که نکته مهم وجود token مربوط به ربات در هدر با نام token میباشد که برای اعتبارسنجی برنامه از آن استفاده میشود و توسعه دهنده پس از ساخت ربات در پرتال توسعه دهندگان میتواند به آن دسترسی پیدا کند.
همه پیامهایی که کاربران به رباتهای تعاملی ارسال مینمایند، به صورت
POST به آدرسی که شما در هنگام ایجاد ربات در فیلد callback وارد
کردهاید، ارسال میشوند.
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. |
| data | string | محتوای دادهی ارسالی کاربر. |
انواع پیامهایی که از طرف گپ به آدرس callback ربات شما بصورت POST ارسال
میشود، به شرح ذیل است:
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت join است. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت leave است. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت text است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | محتوای دادهی ارسالی کاربر. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت image است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات فایل image است. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت audio است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات فایل audio است. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت video است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات فایل video است. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت voice است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات فایل voice است. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت file است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات file است. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت contact است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات contact است. |
مثال: مقدار data در هنگام دریافت contact از طرف کاربر:
{
"name":"Ehsan Sabet",
"phone":"+989356167766"
}
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت location است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات location است. |
مثال: مقدار data در هنگام دریافت location از طرف کاربر:
{
"lat":"36.297611661967245",
"long":"59.602204039692886",
"desc":""
}
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت submitForm است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات form است. |
مثال: مقدار data در هنگام دریافت submitForm از طرف کاربر:
{
"data":"name=Ehsan&married=y&city=mashhad&address=Iran&agree=true",
"message_id":97,
"callback_id":"N7YcI5rAlX2sEFmh"
}
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت triggerButton است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات trigger button است. |
مثال: مقدار data در هنگام دریافت triggerButton از طرف کاربر:
{
"data":"yes",
"message_id":98,
"callback_id":"XoXN/QCEMd4JeICk"
}
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت paycallback است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات payment است. |
هنگامی که کاربر با استفاده از دکمههای inline پرداخت درون برنامهای انجام میدهد، این مقادیر به لینک callback شما ارسال میشود.
مثال: مقدار data در هنگام دریافت paycallback از طرف کاربر:
{
"ref_id":"123456",
"message_id":"99",
"status":"success"
}
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر از آن استفاده میشود. |
| type | string | نوع داده ارسالی کاربر را مشخص میکند. که در این نوع پیام مقدار ثابت invoicecallback است. |
| from | string | یک آرایه از نوع json که شامل id، name و username کاربر عضو شده در ربات میباشد. |
| data | string | یک آرایه از نوع json میباشد که شامل اطلاعات invoice است. |
هنگامی که کاربر با استفاده از دکمههای inline یک صورتحساب پرداخت میکند، این مقادیر به لینک callback شما ارسال میشود.
مثال: مقدار data در هنگام دریافت invoicecallback از طرف کاربر:
{
"invoiceId":"5bcd7f7ca74ad8015d65205d"
}
هر درخواستی که شما بعنوان توسعه دهنده به گپ ارسال میکنید، جهت احراز هویت نیاز به توکن دارد، بعد از ایجاد ربات از طریق بات پلتفرم، توکن برای شما ایجاد میشود.
هنگام ارسال هر درخواستی به سرور باید توکن ربات را در Header و با نام token ارسال نمایید.
برای ارسال پیام به کاربران ربات، باید پارامترهای لازم را به صورت POST
به آدرس https://api.gap.im/sendMessage ارسال نمایید.
نکته مهم: برای ارسال پیام به کاربران با توجه به نوع ربات مقدار chat_id تغییر میکند. که در جدول زیر میتوانید انواع این مقادیر را مشاهده کنید:
| پارامتر | نوع پارامتر | نوع | نحوه ارسال | توضیحات |
|---|---|---|---|---|
| chat_id | integer | ربات تعاملی | - | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| string | شماره موبایل کاربر عضو شده در ربات با فرمت +989123456789
|
|||
| integer | ربات اطلاع رسانی | فردی | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. | |
| string | شماره موبایل کاربر عضو شده در ربات با فرمت +989123456789
|
|||
| string | گروهی | شناسه ربات به همراه @ بطور مثال: @bot |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت text است. |
| data | string | متن و یا محتوای ارسالی شما |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت image است. |
| data | string | خروجی متود آپلود که بصورت JSON است. (آپلود) |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
برای ارسال تصویر به کاربران ربات، باید پارامترهای جدول فوق را به صورت
POST به آدرس https://api.gap.im/sendMessage به همراه
توکن ارسال نمایید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت audio است. |
| data | string | خروجی متود آپلود که بصورت JSON است. (آپلود) |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
برای ارسال فایل صوتی به کاربران ربات، باید پارامترهای جدول فوق را به صورت POST
به آدرس https://api.gap.im/sendMessage به همراه توکن
ارسال نمایید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت video است. |
| data | string | خروجی متود آپلود که بصورت JSON است. (آپلود) |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
برای ارسال ویدیو به کاربران ربات، باید پارامترهای جدول فوق را به صورت
POST به آدرس https://api.gap.im/sendMessage به همراه
توکن ارسال نمایید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت voice است. |
| data | string | خروجی متود آپلود که بصورت JSON است. (آپلود) |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
برای ارسال صدا به کاربران ربات، باید پارامترهای جدول فوق را به صورت
POST به آدرس https://api.gap.im/sendMessage به همراه
توکن ارسال نمایید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت file است. |
| data | string | خروجی متود آپلود که بصورت JSON است. (آپلود) |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
برای ارسال فایل به کاربران ربات، باید پارامترهای جدول فوق را به صورت
POST به آدرس https://api.gap.im/sendMessage به همراه
توکن ارسال نمایید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت contact است. |
| data | string | یک JSON که شامل کلیدهای phone و name است. |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
مثال: مقدار data در هنگام ارسال شماره تلفن به کاربر
{
"phone":"+989123456789",
"name":"Name Family"
}
برای ارسال شماره تلفن به کاربران ربات، باید پارامترهای جدول فوق را به صورت
POST به آدرس https://api.gap.im/sendMessage به همراه
توکن ارسال نمایید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت location است. |
| data | string | یک JSON که شامل کلیدهای lat، long و desc است. |
| reply_keyboard | string | افزودن کیبورد از نوع reply به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به reply_keyboard ) |
| inline_keyboard | string | افزودن کیبورد از نوع inline به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard ) |
| form | string | افزودن form به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به form) |
مثال: مقدار data در هنگام ارسال شماره تلفن به کاربر
{
"lat":"36.2605",
"long":"59.6168",
"desc":"Mashhad"
}
برای ارسال موقعیت جغرافیایی به کاربران ربات، باید پارامترهای جدول فوق را به صورت
POST به آدرس https://api.gap.im/sendMessage به همراه
توکن ارسال نمایید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
reply_keyboard"} |
محتوای پارامتر reply_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
form"} |
محتوای پارامتر form معتبر نمیباشد. |
با استفاده از این قابلیت میتوانید یک Action برای کاربر ارسال کنید.
برای ارسال Action باید پارامترهای ذیل را بصورت POST به https://api.gap.im/sendAction
به همراه توکن ارسال نمایید.
| پارامتر | نوع | توضیحات |
|---|---|---|
| chat_id | integer / string | توضیحات مربوط به chat_id |
| type | string | نوع action ارسالی را مشخص میکند، که در حال حاضر فقط یک نوع action پشتیبانی میشود. و مقدار آن باید برابر با typing باشد. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | Action با موفقیت برای کاربر ارسال شده است. | |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
برای ارسال تصویر، ویدیو، فایل صوتی، صدا و ... باید ابتدا آن را با استفاده از این متود، در سرورهای گپ آپلود کرده،و پس از این که آپلود با موفقیت انجام شد رشتهای encode شده در پاسخ درخواست دریافت خواهید کرد که باید این رشته را به همراه درخواست اصلی خود با استفاده از سایر متودها مجدد به api ارسال کنید. همچنین شما میتوانید با ذخیره این رشته، در ارسالهای بعدی بارها از آن بدون آپلود مجدد استفاده کنید.
برای آپلود فایل باید پارامترهای ذیل را بصورت POST به https://api.gap.im/upload
به همراه توکن ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات | فرمت پیشنهادی |
|---|---|---|---|---|
| chat_id | integer / string | بله | توضیحات مربوط به chat_id | |
| image | File | خیر | فایل تصویر مورد نظر شما برای آپلود بصورت multipart/form-data | jpg, png, jpeg |
| video | File | خیر | فایل ویدیو مورد نظر شما برای آپلود بصورت multipart/form-data | mp4 (h264 baseline) |
| voice | File | خیر | فایل صدا مورد نظر شما برای آپلود بصورت multipart/form-data | ogg |
| audio | File | خیر | فایل صوتی مورد نظر شما برای آپلود بصورت multipart/form-data | mp3 |
| file | File | خیر | فایل مورد نظر شما برای آپلود بصورت multipart/form-data | * |
| desc | string | خیر | توضیحات مربوط به فایل ارسالی شما | |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | JSON حاوی اطلاعات فایل آپلود شده بر روی سرور. | فایل با موفقیت آپلود شده است. |
| 403 | - | توکن ارسالی معتبر نمیباشد. |
| 500 | - | حجم فایل ارسالی و یا نوع آن معتبر نمیباشد. |
| نوع | نحوه ارسال | حداکثر حجم مجاز آپلود |
|---|---|---|
| ربات تعاملی | - | 50 مگابایت |
| ربات اطلاع رسانی | فردی | 50 مگابایت |
| ربات اطلاع رسانی | گروهی | 500 مگابایت |
اگر کاربری روی دکمهای از نوع Inline keyboard که دارای مقدار cb_data است کلیک کند، شما میتوانید یک alert و یا tooltip با متن دلخواه به کاربر نمایش دهید.
برای ارسال Answer Callback باید پارامترهای ذیل را بصورت POST به
https://api.gap.im/answerCallback به همراه توکن
ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| callback_id | integer | بله | آیدی دکمه کلیک شده توسط کاربر، که هنگام کلیک بصورت triggerButton برای برنامه توسعه دهنده ارسال میشود. |
| text | string | بله | متن پیامی که قصد نمایش آن به کاربر را دارید. |
| show_alert | boolean | بله | نوع نمایش پیغام به کاربر را مشخص میکند که در صورت true بودن پیام به صورت alert و در صورت وجود مقدار false به شکل tooltip نمایش داده خواهد شد . |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | - | پیغام با موفقیت ارسال شد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
در پیامرسان گپ شما میتوانید برای اعضاء ربات خود با استفاده از این متود صورتحساب ارسال کنید. پس از صدور، کاربر با کلیک بر روی دکمه پرداخت صورتحساب وارد صفحه کیف پول گپ شده و میتواند با استفاده از روشهای موجود نسبت به پرداخت صورتحساب صادر شده اقدام نماید.
برای ارسال صورتحساب باید پارامترهای ذیل را بصورت POST به https://api.gap.im/invoice
به همراه توکن ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| amount | integer | بله | مبلغ صورتحساب که کاربر باید پرداخت کند. |
| currency | string | خیر | این مقدار مشخص کننده واحد پولی صورتحساب است که میتوانید یکی از مقادیر IRR (ریال) و یا USD (دلار) را وارد کنید. اگر این مقدار وارد نشود بطور پیشفرض صورتحساب ریالی صادر خواهد شد. |
| description | string | بله | توضیحات مربوط به صورتحساب پرداختی که به کاربر نمایش داده میشود. |
| expire_time | integer | خیر | مدت زمان اعتبار صورتحساب بر حسب ثانیه است. مقدار پیشفرض این فیلد 86400 ثانیه (یک روز) است. حداقل مقدار قابل قبول این فیلد 300 (معادل پنج دقیقه) و حداکثر 604800 (معادل یک هفته) میباشد. |
نکته: پیشنهاد میشود شما مقدار invoice_id را جهت استفاده در درخواست های بعدی ذخیره کنید.
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 |
{"id":"5bd04ea7a74ad805f8045b91"}
|
مقدار id، همان invoice_id صورتحساب ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
amount"} |
محتوای پارامتر amount معتبر نمیباشد. |
پس از پرداخت موفق صورتحساب توسط کاربر، لازم است توسعه دهنده نسبت به تایید این
صورتحساب اقدام نماید، برای تایید صورتحساب باید پارامترهای ذیل را بصورت POST
به https://api.gap.im/invoice/verify به همراه توکن
ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| ref_id | string | بله | invoice_id که در هنگام ارسال صورتحساب دریافت کردهاید. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"amount":10000,"status":"verified"}
|
مقدار status، مشخص میکند که این صورتحساب پرداخت و تایید شده است و مقدار آن را نمایش میدهد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 405 | - | مقدار ref_id معتبر نمیباشد. |
برای استعلام وضعیت صورتحسابی که قبلا برای کاربر ارسال کردهاید، باید پارامترهای
ذیل را بصورت POST به
https://api.gap.im/invoice/inquiry به همراه توکن
ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| ref_id | string | بله | invoice_id که در هنگام ارسال صورتحساب دریافت کردهاید. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"status":"error"} |
مقدار status، مشخص میکند که این صورتحساب پرداخت نشده است و یا ref_id اشتباه است. |
| 200 | {"amount":10000,"status":"verified"}
|
مقدار status، مشخص میکند که این صورتحساب پرداخت شده است و مقدار آن را نمایش میدهد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
ref_id"} |
محتوای پارامتر ref_id معتبر نمیباشد. |
پرداخت درون برنامهای نوع دیگری از پرداخت وجه توسط کاربران در گپ میباشد و روش استفاده از آن بدین صورت است که میتوان در هنگام ساخت inline keyboard یک دکمه به شکل زیر تغریف کرد. دکمه پرداخت درون برنامهای یک JSON، شامل موارد ذیل است که باید در قسمت inline keyboard درج شود.
| Key | نوع | الزامی | توضیحات |
|---|---|---|---|
| text | string | بله | این مقدار در حقیقت برچسب دکمه پرداخت دورن برنامهای است. |
| amount | integer | بله | این مقدار به منظور گرفتن وجه از کاربر به شکل پرداخت درون برنامهای میباشد. |
| currency | string | بله | این مقدار مشخص کننده واحد پول است. که در حال حاضر میتواند برای پرداختهای ریالی مقدار IRR و پرداخت گپسی مقدار coin را دریافت کند. |
| ref_id | string | بله | یک رشته Base64 شامل حروف و ارقام میباشد که در واقع یک کد منحصر بفرد است که توسط توسعه دهنده ایجاد شده و برای شناسایی کاربر پس از انجام روال پرداخت استفاده میشود. پس از انجام پرداخت توسط کاربر و یا به وجود آمدن خطا در روال پرداخت، گپ یک درخواست به منظور اعلام نتیجه برای توسعه دهنده ارسال میکند که از نوع payCallback و شامل مقدار ref_id نیز میباشد. |
| desc | string | بله | توضیحات مربوط به پرداخت که برای نمایش در لیست تراکنشها استفاده میشود. |
برای ایجاد دکمه پرداخت درون برنامهای باید پارامترهای ذیل را بصورت
POST به https://api.gap.im/sendMessage به همراه توکن ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer / string | بله | توضیحات مربوط به chat_id |
| type | string | بله | نوع داده ارسالی را مشخص میکند. که در این نوع پیام مقدار ثابت text است. |
| data | string | بله | متن و یا محتوای ارسالی شما |
| inline_keyboard | string | بله | افزودن کیبورد از نوع inline حاوی دکمه پرداخت درون برنامهای به پیام. این مقدار باید به صورت JSON ارسال شود. (توضیحات مربوط به inline_keyboard) |
نکته: در هر نوع ارسال پیامی که شما امکان درج inline keyboard را داشته باشید، میتوانید از پرداخت درون برنامهای استفاده کنید، که در این مثال ما از ارسال پیام متنی استفاده کردهایم.
مثال: محتوای پارامتر inline keyboard هنگام ایجاد دکمه پرداخت درون برنامهای:
[
[
{
"text":"پرداخت سکه",
"amount":2,
"currency":"coin",
"ref_id":"XXXXXXX",
"desc":"توضیحات مربوط به پرداخت برای نمایش در لیست تراکنش ها"
}
]
]
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"id": 1333} |
مقدار id، همان message_id پیام ارسال شده برای کاربر میباشد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
type"} |
محتوای پارامتر type معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
data"} |
محتوای پارامتر data معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
inline_keyboard"} |
محتوای پارامتر inline_keyboard معتبر نمیباشد. |
پس از انجام موفق پرداخت درون برنامهای توسط کاربر، لازم است توسعه دهنده نسبت به
تایید این پرداخت اقدام نماید، برای تایید باید پارامترهای ذیل را بصورت
POST به https://api.gap.im/payment/verify به همراه توکن ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| ref_id | string | بله | ref_id که در هنگام ایجاد دکمه پرداخت درون برنامهای توسط توسعه دهنده تولید شده است. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 |
{"amount":2,"status":"verified"}
|
مقدار status، مشخص میکند که این پرداخت درون برنامهای انجام و تایید شده است و مقدار آن را نمایش میدهد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 405 | - | مقدار ref_id معتبر نمیباشد. |
برای استعلام وضعیت پرداخت درون برنامهای، که قبلا برای کاربر ارسال کردهاید، باید
پارامترهای ذیل را بصورت POST به https://api.gap.im/payment/inquiry
به همراه توکن ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| ref_id | string | بله | ref_id که در هنگام ایجاد دکمه پرداخت توسط توسعه دهنده تولید شده است. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"status":"error"} |
مقدار status، مشخص میکند که این پرداخت درون برنامهای انجام نشده است و یا ref_id اشتباه است. |
| 200 |
{"amount":2,"status":"verified"}
|
مقدار status، مشخص میکند که این پرداخت انجام شده است و مقدار آن را نمایش میدهد. |
| 403 | - | توکن و یا پارامتر chat_id معتبر نمیباشد. |
| 400 | {"error":"Invalid data passed:
ref_id"} |
محتوای پارامتر ref_id معتبر نمیباشد. |
برای دریافت اطلاعات کاربر به شکل ثابت و از پیش تعریف شده می توان از قابلیت ایجاد keyboard استفاده کرد. با استفاده از این قابلیت می توان به تعداد مورد نیاز دکمه برای کاربر تعریف کرد که پس از کلیک و یا tap بروی هر کدام از این دکمه ها توسط کاربر عملکردی که برای آن تعریف کرده اید انجام خواهد شد که این عمل می تواند شامل ارسال یک مقدار از سمت کاربر به سرور و یا باز کردن یک url در مرورگر کاربر باشد.
به طور کل دو نوع کیبورد در پیام رسان گپ قابل استفاده میباشد: Reply Keyboard و Inline Button
از این نوع کیبورد برای دریافت مقادیر ثابت و از پیش تعریف شده و یا دریافت لوکیشن و شماره تلفن کاربر میتوان استفاده کرد. این کیبورد شامل JSON مشابه کد ذیل است:
{
"keyboard":[
[
{"yes":"بلی"},
{"no":"خیر"}
],[
{"cancel":"انصراف"}
]
]
}
توجه داشته باشید که بعد از کلیک کاربر روی این دکمهها پیامی مبنی بر اشتراک گذاری شماره تلفن و یا لوکیشن برای کاربر نمایش داده میشود و پس از تایید این پیام، مقادیر به برنامه شما ارسال میشود.
برای دریافت شماره تلفن و یا لوکیشن کاربر باید آرایهای به شکل ذیل ایجاد کنید.
{
"keyboard":[
[
{"$contact":"تلفن"},
{"$location":"لوکیشن"}
]
]
}
inline keyboard یا دکمه شیشهای نوع دیگری از دکمهها هستند که در پیام رسان گپ قابل استفاده هستند، از این دکمهها میتوان برای ارسال مقادیر مختلف، ارسال لینک و یاپرداخت درون برنامهای استفاده کرد.
| Key | نوع | الزامی | توضیحات |
|---|---|---|---|
| text | string | بله | متن دکمه که برای کاربر نمایش داده میشود. |
| cb_data | string | خیر | هنگام کلیک بروی این دکمه، سرور یک درخواست از نوع triggerButton به سمت برنامه توسعه دهنده ارسال خواهد کرد که شامل مقدار cb_data میباشد. |
| url | string | خیر | هنگام کلیک بروی این دکمه، مسیری که در مقابل این پارامتر قرار دارد در مرورگر کاربر باز خواهد شد. |
| open_in | string | خیر | اگر دکمهای که ساخته شده دارای مقدار url باشد، شما میتوانید نحوه
بازشدن این لینک را مشخص کنید. مقدار این key میتواند یک از این موارد باشد: browser, inline_browser, webview_full, webview_with_header, webview |
| amount | integer | خیر | این مقدار به منظور گرفتن وجه از کاربر به شکل پرداخت درون برنامهای میباشد. |
| currency | string | خیر | این مقدار مشخص کننده واحد پول است. که در حال حاضر میتواند برای
پرداختهای ریالی مقدار IRR و پرداخت گپسی مقدار coin را دریافت
کند. در صورت ارسال amount، ارسال این مقدار نیز الزامی است. |
| ref_id | string | خیر | یک رشته Base64 شامل حروف و ارقام میباشد. در صورت ارسال amount، ارسال این مقدار نیز الزامی است. |
| desc | string | خیر | توضیحات مربوط به پرداخت که برای نمایش در لیست تراکنشها استفاده
میشود. در صورت ارسال amount، ارسال این مقدار نیز الزامی است. |
نحوه تعریف این نوع keyboard بدین شکل است:
[
[
{
"text":"بلی",
"cb_data":"yes"
},{
"text":"خیر",
"cb_data":"no"
}
],[
{
"text":"وب سایت",
"url":"http://google.com",
"open_in":"webview_with_header"
},{
"text":"دونیت",
"amount":2000,
"currency":"IRR",
"ref_id":"XXXXXXX",
"desc":"توضیحات مربوط به پرداخت برای نمایش در لیست تراکنش ها"
}
]
]
پیامرسان گپ به توسعه دهندگان این امکان را میدهد که برای دریافت اطلاعات کاربران، از فرم استفاده کنند به این صورت که توسعه دهنده یک فرم به همراه فیلدهای مورد نیاز خود را برای کاربر ارسال میکند و در ادامه کاربر اطلاعات را در فرم وارد میکند و مجدد پیام رسان مقادیر وارد شده توسط کاربر را برای توسعه دهنده ارسال مینماید.
| نام | توضیحات |
|---|---|
| name | نام منحصر به فرد برای هر فیلد. |
| type | نوع فیلد فرم که میتواند با یکی از مقادیر [text ,radio ,select ,textarea ,checkbox ,inbuilt ,submit] پر شود. |
| label | نام نمایشی جلوی هر فیلد در فرم. |
| options | زمانی که مقدار پارامتر type برابر با یکی از مقادیر [select ,radio] باشد میتوانید گزینههای قابل انتخاب توسط کاربر را در این پارامتر مشخص کنید. |
| نوع | توضیحات |
|---|---|
| text | برای دریافت متن کوتاه استفاده میشود. |
| radio | دکمه رادیویی برای انتخاب یک مقدار از بین چندین مقدار استفاده میشود. |
| select | لیست کشویی برای انتخاب یک مقدار از بین چندین مقدار استفاده میشود. |
| textarea | برای دریافت متن طولانی و چند خطی از کاربر استفاده میشود. |
| checkbox | چک باکس برای انتخاب یک مقدار یا چند مقدار از بین چندین مقدار استفاده میشود. |
| inbuilt | برای اسکن بارکد و کیوآرکد استفاده میشود. که در این حالت مقدار value یکی از مقادیر [barcode, qrcode] است. |
| submit | برای ارسال فرم استفاده میشود. |
ساختار کلی فرم:
[
{
"name":"name", "type":"text", "label":"Name"
},{
"name":"married", "type":"radio", "label":"Married",
"options":[
{"y":"Yes"},
{"n":"No"}
]
},{
"name":"city", "type":"select", "label":"City",
"options":[
{"mah":"Mashhad"},
{"teh":"Tehran"}
]
},{
"name":"address", "type":"textarea", "label":"Address"
},{
"name":"test_bc", "type":"inbuilt", "value":"barcode", "label":"Scan barcode"
},{
"name":"test_qr", "type":"inbuilt", "value":"qrcode", "label":"Scan qr-code"
},{
"name":"agree", "type":"checkbox", "label":"I agree"
},{
"type":"submit", "label":"Save"
}
]
در پیامرسان گپ، شما میتوانید براحتی اطلاعات مربوط به بازی از جمله رکوردها و ... را با استفاده از API ارایه شده ذخیره و یا بازیابی کنید. همچنین با استفاده از اطلاعاتی که ارسال کرده اید، جدول بازی را در بازه های زمانی مختلف دریافت و به کاربران نمایش دهید.
برای ذخیره اطلاعات بازی مانند: امتیاز، باید پارامترهای ذیل را بصورت
POST به https://api.gap.im/gameData به همراه توکن ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| type | string | بله | نوع data ارسالی را مشخص میکند، به منظور ذخیره ی امتیاز بازیکن این پارامتر را برابر high_score قرار دهید و در غیر این صورت هر نوع دیگری مختص به بازی خود را می توانید ارسال کنید. ذکر این نکته الزامی است که شما حداکثر قادر به ارسال ۲۵ type متفاوت هستید. |
| data | string | بله | مقداری که قصد ذخیره کردن آن را دارید در این قسمت قرار میگیرد. توجه داشته باشید که اگر type مورد نظر high_score است این مقدار حتما باید integer باشد و در غیر این صورت می تواند هر نوع داده ای را شامل شود . حداکثر سایز قابل قبول برای این پارامتر ۱۰ کیلوبایت است. |
| force | Boolean | خیر | این پارامتر برای نوع داده ای high_score مورد استفاده قرار می گیرد و به صورت پیش فرض false است و چنانچه امتیاز فعلی از امتیاز قبلی کمتر باشد سرور آن را ذخیره نمی کند. اگر بنا به هرعلتی اعم از رخداد اشتباه یا تقلب تمایل به ذخیره ی امتیاز کمتر دارید این پارمتر را با مقدار true ارسال کنید. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | مقادیر ارسالی با موفقیت ذخیره شده است. | |
| 400 | {"error": "Invalid data passed:
type"} |
پارامتر type ارسال نشده است. |
| 400 | {"error": "type of score must be
integer"} |
مقدار ارسالی برای score نامعتبر است. |
| 400 | {"error": "Max size of data can
not be more than 10KB"} |
سایز داده ی ارسالی بیشتر از مقدار قابل قبول است. |
| 400 | {"error": "Number of data type can
not be more than 25"} |
تعداد type ها از حداکثر قابل قبول بیشتر است. |
برای دریافت اطلاعات بازی که قبلا با استفاده از تابع gameData ذخیره کردهاید، باید
پارامترهای ذیل را بصورت POST به https://api.gap.im/getGameData
به همراه توکن ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| type | string | بله | نوع data که قصد دریافت آن را دارید مشخص میکند که میتواند high_score یا سایر مقادیری باشد که قبلا در قسمت ذخیره اطلاعات بازیکن ارسال کردهاید. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 |
{"type":"high_score","data":{"value":123}}
{
"type": "custom",
"data": {"player_achivement" : "10 point"}
}
|
بطور مثال، بالاترین امتیاز یک کاربر در قالب یک آرایه json برای شما ارسال میشود. |
| 400 | {"error": "Invalid data passed:
type"} |
پارامتر type ارسال نشده است. |
برای دریافت جدول قهرمانان بازی که قبلا امتیاز های آنان را با استفاده از تابع
gameData ذخیره کردهاید، باید پارامترهای ذیل را بصورت POST به
https://api.gap.im/leaderBoard به همراه توکن
ارسال نمایید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| chat_id | integer | بله | شناسه منحصربفرد کاربر عضو شده در ربات، که برای ارتباط ربات با آن کاربر استفاده میشود. |
| time | string | بله | در صورتیکه تمایل دارید گزارش خود را به یک بازه زمانی خاص محدود کنید می توانید این پارامتر را با مقادیر all, month, day و week ارسال کنید. در غیر این صورت گزارش محدوده زمانی خاصی را شامل نمی شود. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | |
یک آرایه json شامل جزئیات مربوط به جدول قهرمانان، اطلاعات مربوط به کاربر جاری و همچنین اطلاعات مربوط به کاربرانی که به لحاظ امتیاز در همسایگی کاربر جاری قرار گرفته اند. این اطلاعات شامل نام، نام کاربری، امتیاز، آواتار و رتبه بازیکنان می باشد. |
| 400 | {"error": "Invalid data passed:
time"} |
مقدار ارسالی برای پارامتر time نامعتبر است. |
نمونه خروجی موفق:
[
{
"topLeaders": [
{
"nickname": "ali",
"username": "hosseini",
"avatar": "",
"score": 80,
"rank": 1
},
.....,
{
"nickname": "zahra",
"username": "hashemi",
"avatar": "",
"score": 40,
"rank": 3,
"current_user": true
},
.....
],
"currentPlayer": {
"nickname": "zahra",
"username": "hashemi",
"avatar": "",
"score": 40,
"rank": 3
},
"nearBy": [
{
"nickname": "ali",
"username": "hosseini",
"avatar": "",
"score": 80,
"rank": 1
},
.....,
{
"nickname": "zahra",
"username": "hashemi",
"avatar": "",
"score": 40,
"rank": 3,
"current_user": true
},
{
"nickname": "n.a",
"username": "",
"avatar": "",
"score": 10,
"rank": 4
},
.....
]
}
]
برای دریافت اطلاعات مربوط به پیکربندی بازی، باید پارامترهای ذیل را بصورت POST
به https://api.gap.im/getGameConfig به همراه توکن
ارسال نمایید.
قابل ذکر است اطلاعات مربوط به پیکربندی بازی را می توانید از طریق پورتال کسب و کار و بخش دنیای بازی ثبت کنید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| key | string | خیر | در صورتیکه مایل به دریافت پیکربندی خاصی از بازی هستید آن را در این فیلد ارسال کنید. در غیر این صورت همه موارد برای شما ارسال خواهد شد. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | {"configs": [{"key":
"max_coin","value": "50"}]} |
به طور مثال، اگر key را مقدار max_coin ارسال کرده باشید مقدار مربوط به این key برای شما ارسال خواهد شد. |
برای ثبت رخدادهای بازی می توانید پارامترهای ذیل را به صورت POST به
https://api.gap.im/gameEvent به همراه توکن
ارسال نمایید.
قابل ذکر است مزیت ثبت رخدادهای بازی برای شما این است که می توانید گزارشات آماری بازی خود بر اساس این رخدادها، مثلا گزارش فعالیت کاربر را در پورتال کسب و کار و در بخش دنیای بازی مشاهده کنید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| event | string | بله | نام یک رخداد مربوط به بازی است . اگر مقدار این پارامتر برابر open باشد از آن برای محاسبه ی گزارش فعالیت روزانه، هفتگی و ماهانه کاربران استفاده می شود. در غیر این صورت هر رخداد دیگر بازی را می توانید ثبت کنید. توجه داشته باشید حداکثر تعداد رخدادهای قابل ثبت برای یک بازی ۲۵ است. |
| value | string | خیر | در صورت تمایل می توانید برای هر رخداد مقدار مربوط به آن را نیز ارسال کنید. حداکثر سایز این پارامتر می تواند ۱ کیلو بایت باشد. |
| کد وضعیت | خروجی | توضیحات |
|---|---|---|
| 200 | مقادیر ارسالی با موفقیت ذخیره شده است. | |
| 400 | {"error": "Invalid data passed:
event"} |
پارامتر event ارسال نشده است. |
| 400 | {"error": "max size of event value
is 1KB"} |
سایز دیتای ارسالی از حداکثر قابل قبول بیشتر است. |
| 400 | {"error": "max number of event is
25"} |
تعداد رخدادهای بازی از حداکثر قابل قبول بیشتر است. |