توضیحات اولیه
به طور کلی روال کار با API به دو بخش ارسال اطلاعات کاربر (عضویت در سرویس و پیامهای ارسالی کاربر) به برنامه توسعه دهندگان و دیگری ارسال از برنامه توسعه دهندگان به کاربران گپ تقسیم میشود.
روال دریافت به این گونه است که هنگامی که کاربران اقدام به عضویت در سرویس شما میکنند و یا متن، تصویر، فایل و ویدئویی را از داخل سرویس برای شما ارسال میکنند، API اطلاعات دریافتی را با یک درخواست به صورت POST
به مسیری که در هنگام ایجاد سرویس در سیستم ثبت شده است (لینک خارجی)، ارسال میکند.
و همچنین روال ارسال از برنامه توسعه دهندگان نیز به این شکل است که یک درخواست از برنامه توسعه دهنده به API گپ ارسال میشود که نکته مهم وجود token مربوط به سرویس در هدر با نام token میباشد که برای اعتبارسنجی برنامه از آن استفاده میشود و توسعه دهنده پس از ساخت سرویس در پرتال توسعه دهندگان میتواند به آن دسترسی پیدا کند.
دریافت اطلاعات
POST
<مسیر وارد شده در زمان ایجاد سرویس>
نام داده | نوع | توضیحات |
---|---|---|
chat_id | integer | یک شناسه ایجاد شده که برای ارتباط سرویس با یک کاربر از آن استفاده می شود. |
type | string | می تواند شامل [join, text, image, video, audio, file, voice, triggerButton, invoiceCallback, payCallback, submitForm] باشد و نوع داده ارسالی کاربر را مشخص میکند. |
data | string | محتوای دادهی ارسالی کاربر. |
- chat_id : این مقدار برای هر کاربر به ازای هر سرویس منحصربفرد میباشد باید توسط برنامه شما ذخیره شود تا برای پاسخ به کاربر بتوانید از آن استفاده کنید.
- type : این مشخصه دارای مقادیری خاصی میباشد که هر کدام از این مقادیر نشانگر یک عملیات خاص میباشد.
توضیحات | مقدار ارسالی Type |
---|---|
join | این مقدار زمانی ارسال می شود که کاربر جدیدی عضو سرویس شود . |
text / image / video / audio / file / voice | در زمان ارسال یک پیام توسط کاربر در سرویس بسته به نوع پیام (متنی ، مدیا و...) مقدار type برابر با یکی از این مقادیر خواهد بود . |
triggerButton | این مقدار زمانی ارسال خواهد شد که کاربر بروی Inline Button که قبلا از نوع cb_data ایجاد کرده اید کلیک کند . |
invoiceCallback | این مقدار در زمان در زمانی که یک کاربر صورتحساب که توسط توسعه دهنده برای او ارسال شده را به با موفقیت پرداخت کند و یا خطایی در پروسه پرداخ رخ دهد ، ارسال خواهد شد . اطلاعات بیشتر در پرداخت صورتحساب . |
payCallback | این مقدار همانند invoiceCallback مربوط به بخش مالی می باشد و در زمانی که پرداخت درون برنامه ای با موفقیت انجام شود و یا خطایی رخ دهد برای توسعه دهنده ارسال خواهد شد . اطلاع بیشتر در پرداخت درون برنامه ای |
submitForm | زمانی که فرمی توسط توسعه دهنده برای کاربر ارسال می شود و کاربر آن را پر می کند و فرم را ارسال می کند پیام رسان گپ درخواستی به سمت توسعه دهنده ارسال می کند که مقدار type آن برابر با این و اطلاعات پر شده فرم در داخل پارامتر data موجود می باشد . |
ارسال اطلاعات به کاربر
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده ارسال [text, image, video, audio, file, contact] |
data | string | بلی | متن و یا محتوای ارسالی شما |
reply_keyboard | string | خیر | افزودن کیبورد از نوع reply به پیام . این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع inline به پیام . این آرایه باید به صورت encode شده ارسال شود |
form | string | خیر | ارسال فرم به کاربر . این آرایه باید به صورت encode شده ارسال شود |
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
Error 403 Forbidden
توضیحات | پارامتر |
---|---|
token | Token ارسالی معتبر نمی باشد. |
Chat ID
مقدار chat_id در انواع سرویسهای مختلف به شرح ذیل است.
نوع سرویس | نوع ارسال | توضیحات |
---|---|---|
تعاملی | - | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
اطلاع رسانی | فردی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
اطلاع رسانی | گروهی | شناسه سرویس به همراه @ مثال: service@ |
- نکته: شناسه کاربران به ازای هر سرویس مقداری منحصربفرد است.
ارسال فایل به کاربر
شیوه ارسال فایل همانند ارسال متن است با این تفاوت که شما باید نخست اقدام به آپلود فایل خود در مسیر زیر کنید و پس از این که آپلود با موفقیت انجام شد رشتهای encode شده در پاسخ درخواست دریافت خواهید کرد که باید این رشته را به همراه درخواست اصلی خود مجدد به api ارسال کنید. همچنین شما میتوانید با ذخیره این رشته، در ارسالهای بعدی بارها از آن بدون آپلود مجدد استفاده کنید.
آپلود فایل :
POST
https://api.gap.im/upload
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
image / video / file / audio / voice | file | بلی | فایل ارسالی شما که بسته به نوع فایل ارسالی باید نام آن برابر با یکی از مقادیر image, video, file, audio, voice باشد . |
reply_keyboard | string | خیر | افزودن کیبورد از نوع reply به پیام . این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع inline به پیام . این آرایه باید به صورت encode شده ارسال شود |
- مقدار بازگشتی پس از آپلود فایل از نوع json است. که در صورت لزوم میتوانید به این مقدار یک کلید با نام desc هم اضافه کنید که به عنوان توضیحات یا caption آن فایل در نظر گرفته میشود.
ارسال فایل به کاربر :
برای ارسال نهایی به سمت کاربر دقیقا همانند ارسال پیام روال کار انجام میشود با در نظر گرفتن این موضوع که مقدار type باید برابر با نوع فایل ارسالی شما و مقدار data هم برابر با رشته دریافتی پس از آپلود فایل میباشد.
ارسال Action به کاربر
با استفاده از این قابلیت میتوانید یک Action برای کاربر ارسال کنید.
POST
https://api.gap.im/sendAction
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع Action |
انواع Action های قابل استفاده در گپ:
نام | توضیحات |
---|---|
typing | نمایش پیام 'در حال نوشتن پیام ...' به کاربر در پیامرسان |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
ارسال شماره تلفن (Contact)
ارسال مشخصات یک Contact که شامل نام و شماره تماس میباشد.
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده که باید روی contact تنظیم شود. |
data | string | بلی | مقادیر name و phone که به صورت یک آرایه encode شده میباشد. |
reply_keyboard | string | خیر | افزودن کیبورد از نوع Reply Keyboard به پیام. این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
مقدار data پس از encode شدن باید بصورت ذیل باشد:
{"phone":"+989123456789","name":"Name Family"}
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ارسال موقعیت (Location)
ارسال مشخصات یک Location که شامل مختصات جغرافیایی میباشد.
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده که باید روی location تنظیم شود. |
data | string | بلی | مقادیر lat و long و desc که به صورت یک آرایه encode شده میباشد. |
reply_keyboard | string | خیر | افزودن کیبورد از نوع Reply Keyboard به پیام. این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
مقدار data پس از encode شدن باید بصورت ذیل باشد:
{"lat":"36.2605","long":"59.6168","desc":"Mashhad"}
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ارسال تصویر (Image)
برای ارسال تصویر ابتدا باید آن را از طریق متود ارسال فایل به کاربر آپلود کنید و سپس از این متود برای ارسال به کاربر استفاده کنید.
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده که باید روی image تنظیم شود. |
data | string | بلی | این مقدار برابر با آرایهای است که پس از ارسال فایل به کاربر دریافت میکنید. |
reply_keyboard | string | خیر | افزودن کیبورد از نوع Reply Keyboard به پیام. این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
بطور مثال مقدار دریافتی پس از آپلود فایل باید مشابه آرایه ذیل باشد و شما باید این مقدار دریافتی از متود ارسال فایل به کاربر را در قسمت data ارسال کنید.
{
"screenshots": {
"64": "https://domain.com/7986bc684c-5eh469san2sab81e008t4755.png",
"128": "https://domain.com/cf7ed93c6a-5eh469san2sab81e008t4755.png",
"256": "https://domain.com/fae9add40d-5eh469san2sab81e008t4755.png",
"512": "https://domain.com/f8992c8fc3-5eh469san2sab81e008t4755.png"
},
"type": "image",
"path": "https://domain.com/0bd8afdf1b-5eh469san2sab81e008t4755.png",
"width": 512,
"height": 512,
"filesize": 412727,
"filename": "image.png"
}
- همچنین شما میتوانید در صورت لزوم به این آرایه یک مشخه با نام desc هم اضافه کنید که به عنوان توضیحات یا caption در نظر گرفته میشود.
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ارسال فایل صوتی (Audio)
برای ارسال فایل صوتی ابتدا باید آن را از طریق متود ارسال فایل به کاربر آپلود کنید و سپس از این متود برای ارسال به کاربر استفاده کنید.
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده که باید روی audio تنظیم شود. |
data | string | بلی | این مقدار برابر با آرایهای است که پس از ارسال فایل به کاربر دریافت میکنید. |
reply_keyboard | string | خیر | افزودن کیبورد از نوع Reply Keyboard به پیام. این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
بطور مثال مقدار دریافتی پس از آپلود فایل باید مشابه آرایه ذیل باشد، و شما باید این مقدار دریافتی از متود ارسال فایل به کاربر را در قسمت data ارسال کنید.
{
"type": "audio",
"path": "https://domain.com/e679f7495d-5acaed60e2hsa87n008b4937.mp3",
"tags": {
"genre": "Audio genre",
"album": "Album name",
"artist": "Artist name",
"title": "Audio title",
"cover": "https://domain.com/825fd59059-5acaed60c2ehs87a008n4937.jpg",
"filename": "audio.mp3"
},
"duration": 237.51892,
"filesize": 5700454,
"filename": "audio.mp3"
}
- همچنین شما میتوانید در صورت لزوم به این آرایه یک مشخه با نام desc هم اضافه کنید که به عنوان توضیحات یا caption در نظر گرفته میشود.
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ارسال ویدئو (Video)
برای ارسال ویدئو ابتدا باید آن را از طریق متود ارسال فایل به کاربر آپلود کنید و سپس از این متود برای ارسال به کاربر استفاده کنید.
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده که باید روی video تنظیم شود. |
data | string | بلی | این مقدار برابر با آرایهای است که پس از ارسال فایل به کاربر دریافت میکنید. |
reply_keyboard | string | خیر | افزودن کیبورد از نوع Reply Keyboard به پیام. این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
بطور مثال مقدار دریافتی پس از آپلود فایل باید مشابه آرایه ذیل باشد، و شما باید این مقدار دریافتی از متود ارسال فایل به کاربر را در قسمت data ارسال کنید.
{
"screenshots": {
"64": "https://domain.com/56cb3f5f4d-5e9h62san2sab875348e4576.mp4.jpg",
"128": "https://domain.com/9fcc0b820c-5e9h62san2sab875348e4576.mp4.jpg",
"256": "https://domain.com/c90333989e-5e9h62san2sab875348e4576.mp4.jpg",
"512": "https://domain.com/e5bbb66ac3-5e9h62san2sab875348e4576.mp4.jpg"
},
"type": "video",
"path": "https://domain.com/79cf7ab524-5e9h62san2sab875348e4576.mp4",
"width": 640,
"height": 360,
"duration": 95.232,
"filesize": 3061490,
"filename": "video.mp4"
}
- همچنین شما میتوانید در صورت لزوم به این آرایه یک مشخه با نام desc هم اضافه کنید که به عنوان توضیحات یا caption در نظر گرفته میشود.
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ارسال صدا (Voice)
برای ارسال صدا ابتدا باید آن را از طریق متود ارسال فایل به کاربر آپلود کنید و سپس از این متود برای ارسال به کاربر استفاده کنید.
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده که باید روی voice تنظیم شود. |
data | string | بلی | این مقدار برابر با آرایهای است که پس از ارسال فایل به کاربر دریافت میکنید. |
reply_keyboard | string | خیر | افزودن کیبورد از نوع Reply Keyboard به پیام. این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
بطور مثال مقدار دریافتی پس از آپلود فایل باید مشابه آرایه ذیل باشد، و شما باید این مقدار دریافتی از متود ارسال فایل به کاربر را در قسمت data ارسال کنید.
{
"type": "voice",
"path": "https://domain.com/d9087851eb-5acaf980e2hsa844008n4925.ogg",
"duration": 2.1905,
"filesize": 5730,
"filename": "voice.ogg"
}
- همچنین شما میتوانید در صورت لزوم به این آرایه یک مشخه با نام desc هم اضافه کنید که به عنوان توضیحات یا caption در نظر گرفته میشود.
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ارسال فایل
برای ارسال فایل (با هر فرمتی) ابتدا باید آن را از طریق متود ارسال فایل به کاربر آپلود کنید و سپس از این متود برای ارسال به کاربر استفاده کنید.
POST
https://api.gap.im/sendMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه منحصربفرد کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. البته با در اختیار داشتن شماره موبایل کاربر که عضو سرویس شما میباشد میتوانید در این فیلد بجای chat_id شماره موبایل کاربر را با فرمت 989123456789+ وارد کنید. |
type | string | بلی | نوع داده که باید روی file تنظیم شود. |
data | string | بلی | این مقدار برابر با آرایهای است که پس از ارسال فایل به کاربر دریافت میکنید. |
reply_keyboard | string | خیر | افزودن کیبورد از نوع Reply Keyboard به پیام. این آرایه باید به صورت encode شده ارسال شود |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
بطور مثال مقدار دریافتی پس از آپلود فایل باید مشابه آرایه ذیل باشد، و شما باید این مقدار دریافتی از متود ارسال فایل به کاربر را در قسمت data ارسال کنید.
{
"type": "file",
"path": "https://domain.com/40bb002ad2-5ehsa258n2fbb88b008b4931",
"filesize": 2053185,
"filename": "file.zip"
}
- همچنین شما میتوانید در صورت لزوم به این آرایه یک مشخه با نام desc هم اضافه کنید که به عنوان توضیحات یا caption در نظر گرفته میشود.
200 Success Request
توضیحات | پارامتر |
---|---|
id | شناسه پیام ارسالی شما . در واقع همان message_id می باشد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ویرایش پیام
شما میتوانید پیامهایی که قبلا ارسال کردهاید را با استفاده از این متود ویرایش کنید.
POST
https://api.gap.im/editMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه ایجاد شده برای کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. |
message_id | integer | بلی | شناسه پیامی که قصد ویرایش آن را دارید. |
data | string | بلی | متن و یا محتوای ارسالی شما |
inline_keyboard | string | خیر | افزودن کیبورد از نوع Inline Button به پیام. این آرایه باید به صورت encode شده ارسال شود |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
حذف پیام
برای حذف یک پیام که قبلا ارسال کردهاید، میتوانید از این متود استفاده کنید.
POST
https://api.gap.im/deleteMessage
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه ایجاد شده برای کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است. |
message_id | string | خیر | شناسه پیامی که قصد حذف آن را دارید. |
مقدار message_id را می توانید از چند طریق به دست آورد:
- پس از ارسال هر پیام توسط توسعه دهنده برای کاربر، در پاسخ یک id دریافت خواهد شد که در واقع شناسه همان پیام ارسال شده میباشد.
- در هنگام استفاده از Inline Button و استفاده از نوع داده cb_data که پس از کلیک کاربر بروی Button یک پیام برای توسعه دهنده ارسال خواهد شد، که یکی از پارامترهای ارسالی message_id خواهد بود.
- پس از پر کردن و ارسال فرم توسط کاربر در پیامی که برای توسعه دهنده ارسال میشود، مقدار message_id هم در آن فرم ارسال خواهد شد.
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
Keyboard
برای دریافت اطلاعات کاربر به شکل ثابت و از پیش تعریف شده می توان از قابلیت ایجاد keyboard استفاده کرد. با استفاده از این قابلیت می توان به تعداد مورد نیاز دکمه برای کاربر تعریف کرد که پس از کلیک و یا tap بروی هر کدام از این دکمه ها توسط کاربر عملکردی که برای آن تعریف کرده اید انجام خواهد شد که این عمل می تواند شامل ارسال یک مقدار از سمت کاربر به سرور و یا باز کردن یک url در مرورگر کاربر باشد.
به طور کل دو نوع کیبورد در پیام رسان گپ قابل استفاده میباشد: Reply Keyboard و Inline Button
Reply Keyboard
از این نوع کیبورد برای دریافت مقادیر ثابت و از پیش تعریف شده و یا دریافت لوکیشن و شماره تلفن کاربر میتوان استفاده کرد.
همانطور که در تصویر مشاهده میکنید در هنگام استفاده از این نوع کیبورد دکمههای تعریف شده توسط توسعه دهنده در زیر بخش ورود متن برای کاربر نمایش داده خواهد شد. شکل کلی و پارامترهای مورد نیاز برای استفاده از Reply keyboard به این شکل میباشد.
[
'keyboard'=> [
[['yes' => 'بلی'], ['no' => 'خیر']],
[['cancel' => 'انصراف']]
]
]
- keyboard: (اجباری) این پارامتر مشخص کننده دکمههای مورد استفاده و دادههای آنهاست و شامل آرایهای از آبجکت هاست و به این شکل میباشد که در داخل آرایه نخست تعداد ردیفها قرار گیری دکمهها مشخص میشود و سپس در داخل هر ردیف مجددا یک آرایه میباشد که دکمههای آن قرار میگیرد که شامل یک کلید و مقدار میباشد، مقدار نشان دهنده متن دکمه و کلید نشان دهنده مقدار ارسالی به سمت برنامه توسعه دهنده در صورت کلیک کاربر میباشد.
نحوه ارسال این مقادیر به صورت encode شده به سرور را میتوانید در بخشهای ارسال متن و فایل و... مشاهده کنید.
دریافت شماره تلفن و یا لوکیشن کاربر از طریق کیبورد
برای دریافت شماره تلفن و یا لوکیشن کاربر باید آرایهای به شکل ذیل ایجاد کنید.
[
'keyboard' => [
[
['$contact' => 'تلفن'],
['$location' => 'لوکیشن']
],
]
]
توجه داشته باشید که بعد از کلیک کاربر روی این دکمهها پیامی مبنی بر اشتراک گذاری شماره تلفن و یا لوکیشن برای کاربر نمایش داده میشود و پس از تایید این پیام، مقادیر به برنامه شما ارسال میشود.
Inline Button
این نوع keyboard مشابه reply keyboard میباشد با این تفاوت که دکمه در زیر پیام ارسالی نمایش داده میشود و نه زیر قسمت ورود متن و باکس کاربر که در تصویر قابل مشاهده میباشد. نحوه تعریف این نوع keyboard بدین شکل است:
[
[
['text' => 'بلی', 'cb_data' => 'yes'],
['text' => 'خیر', 'cb_data' => 'no'],
],
[
['text' => 'وب سایت', 'url' => 'http://google.com'],
['text' => 'دونیت', 'amount' => 2000, 'currency' => 'IRR', 'ref_id' => 'XXXXXXX',
'desc' => 'توضیحات مربوط به پرداخت برای نمایش در لیست تراکنش ها']
]
]
مشابه شکل کلی که در reply keyboard داشتیم در این جا هم در سطح اول آرایه ردیفها رو مشخص کرده و سپس دکمه هایی که قرار است در هر ردیف قرار بگیرد را مشخص میکنیم.
- text: (اجباری) مقدار قرار گرفته در این پارامتر در واقع متنی است که در داخل دکمه قرار میگیرد و کاربر آن را میبیند.
- cb_data | url | amount: (اجباری) برای هر دکمه در inline keyboard میتوان سه نوع عملکرد در نظر گرفت:
پارامتر | توضیحات |
---|---|
cb_data | در هنگام کلیک بروی این دکمه سرور یک درخواست از نوع triggerButton به سمت برنامه توسعه دهنده ارسال خواهد کرد که شامل داده های قرار گرفته در جلوی این پارامتر می باشد. |
url | هنگام کلیک بروی این دکمه، مسیری که در مقابل این پارامتر قرار دارد در مرورگر کاربر باز خواهد شد. |
amount | این مقدار به منظور گرفتن وجه از کاربر به شکل پرداخت درون برنامهای میباشد. |
در صورت استفاده از مقدار amount برای دریافت وجه به شکل پرداخت درون برنامهای استفاده از مقادیر زیر نیز ضروری است.
پارامتر | الزامی | توضیحات |
---|---|---|
currency | بلی | این مقدار مشخص کننده واحد پول است. که در حال حاضر میتواند برای پرداختهای ریالی مقدار IRR و پرداخت گپسی مقدار coin را دریافت کند. |
ref_id | بلی | یک رشته Base64 شامل حروف و ارقام میباشد. |
desc | خیر | توضیحات مربوط به پرداخت که برای نمایش در لیست تراکنشها استفاده میشود. |
- inline keyboard تا زمانی که پیام مربوط به آن ویرایش و یا حذف نشود به کاربر نمایش داده خواهد شد .
Answer Callback
اگر کاربری روی دکمهای از نوع Inline keyboard که دارای مقدار cb_data است کلیک کند، شما میتوانید یک alert و یا tooltip با متن دلخواه به کاربر نمایش دهید.
POST
https://api.gap.im/answerCallback
نام داده | نوع | الزامی | توضیحات |
---|---|---|---|
chat_id | integer | بلی | شناسه ایجاد شده برای کاربر که در هنگام عضویت در سرویس و یا ارسال پیام برای توسعه دهنده ارسال شده است . |
callback_id | integer | بلی | شناسه که توسط پیام رسان در زمان کلیک کاربر بروی inline keyboard و cb_data به همراه message_id به آدرس توسعه دهنده ارسال می شود . |
text | string | بلی | متن پیامی که قرار به کاربر نمایش داده شود . |
show_alert | boolean | بلی | نوع نمایش پیغام به کاربر را مشخص می کند که در صورت true بودن پیام به صورت alert و در صورت وجود مقدار false به شکل tooltip نمایش داده خواهد شد . |
Error 400 Bad Request
توضیحات | پارامتر |
---|---|
chat_id | داده ارسالی معتبر نمیباشد. |
data | داده ارسالی معتبر نمیباشد. |
reply_keyboard | داده ارسالی معتبر نمیباشد. |
inline_keyboard | داده ارسالی معتبر نمیباشد. |
ایجاد Form
پیامرسان گپ به توسعه دهندگان این امکان را میدهد که برای دریافت اطلاعات کاربران ، از فرم استفاده کنند به این صورت که توسعه دهنده یک فرم به همراه فیلدهای مورد نیاز خود را برای کاربر ارسال میکند و در ادامه کاربر اطلاعات را در فرم وارد میکند و مجدد پیام رسان مقادیر وارد شده توسط کاربر را برای توسعه دهنده ارسال میکند.
ساختار کلی فرم :
[
["name" => "name", "type" => "text", "label" => "Name"],
["name" => "married", "type" => "radio", "options" => [["y" => "Yes"], ["n" => "No"]], "label" => "Married"],
["name" => "city", "type" => "select", "options" => [["mah" => "Mashhad"], ["teh" => "Tehran"]], "label" => "City"],
["name" => "address", "type" => "textarea", "label" => "Address"],
["name" => "agree", "type" => "checkbox", "label" => "I agree"],
["type" => "submit", "label" => "Save"],
]
توضیحات | پارامتر |
---|---|
name | نام منحصر به فرد برای هر فیلد. |
type | نوع فیلد فرم که میتواند با یکی از مقادیر [text ,radio ,select ,textarea ,checkbox ,inbuilt ,submit] پر شود. |
label | نام نمایشی جلوی هر فیلد در فرم. |
options | زمانی که مقدار پارامتر type برابر با یکی از مقادیر [select ,radio] باشد میتوانید گزینههای قابل انتخاب توسط کاربر را در این پارامتر مشخص کنید. |
دریافت اطلاعات در فرم از طریق بارکد
یکی از قابلیتهای دیگر API گپ دریافت اطلاعات فرم از طریق بارکدخوان گوشی موبایل است که شما براحتی میتوانید در هنگام ایجاد فرم مشابه مثال زیر از آن استفاده کنید.
[
["name" => "name", "type" => "text", "label" => "نام"],
["name" => "test_bc", "type" => "inbuilt", "value" => "barcode", "label" => "بارکد"],
["name" => "test_qr", "type" => "inbuilt", "value" => "qrcode", "label" => "کیوآرکد"],
["type" => "submit", "label" => "ارسال"],
]