توضیحات اولیه

به طور کلی روال کار با 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 را می توانید از چند طریق به دست آورد:

  1. پس از ارسال هر پیام توسط توسعه دهنده برای کاربر، در پاسخ یک id دریافت خواهد شد که در واقع شناسه همان پیام ارسال شده می‌باشد.
  2. در هنگام استفاده از Inline Button و استفاده از نوع داده cb_data که پس از کلیک کاربر بروی Button یک پیام برای توسعه دهنده ارسال خواهد شد، که یکی از پارامترهای ارسالی message_id خواهد بود.
  3. پس از پر کردن و ارسال فرم توسط کاربر در پیامی که برای توسعه دهنده ارسال می‌شود، مقدار message_id هم در آن فرم ارسال خواهد شد.

Error 400 Bad Request

توضیحات پارامتر
chat_id داده ارسالی معتبر نمی‌باشد.
data داده ارسالی معتبر نمی‌باشد.

Keyboard

برای دریافت اطلاعات کاربر به شکل ثابت و از پیش تعریف شده می توان از قابلیت ایجاد keyboard استفاده کرد. با استفاده از این قابلیت می توان به تعداد مورد نیاز دکمه برای کاربر تعریف کرد که پس از کلیک و یا tap بروی هر کدام از این دکمه ها توسط کاربر عملکردی که برای آن تعریف کرده اید انجام خواهد شد که این عمل می تواند شامل ارسال یک مقدار از سمت کاربر به سرور و یا باز کردن یک url در مرورگر کاربر باشد.

به طور کل دو نوع کیبورد در پیام رسان گپ قابل استفاده می‌باشد: Reply Keyboard و Inline Button


Reply Keyboard

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

reply keyboard

همانطور که در تصویر مشاهده می‌کنید در هنگام استفاده از این نوع کیبورد دکمه‌های تعریف شده توسط توسعه دهنده در زیر بخش ورود متن برای کاربر نمایش داده خواهد شد. شکل کلی و پارامترهای مورد نیاز برای استفاده از Reply keyboard به این شکل می‌باشد.

[
  'keyboard'=> [
      [['yes' => 'بلی'], ['no' => 'خیر']],
      [['cancel' => 'انصراف']]
  ]
]
  • keyboard: (اجباری) این پارامتر مشخص کننده دکمه‌های مورد استفاده و داده‌های آن‌هاست و شامل آرایه‌ای از آبجکت هاست و به این شکل می‌باشد که در داخل آرایه نخست تعداد ردیف‌ها قرار گیری دکمه‌ها مشخص می‌شود و سپس در داخل هر ردیف مجددا یک آرایه می‌باشد که دکمه‌های آن قرار می‌گیرد که شامل یک کلید و مقدار می‌باشد، مقدار نشان دهنده متن دکمه و کلید نشان دهنده مقدار ارسالی به سمت برنامه توسعه دهنده در صورت کلیک کاربر می‌باشد.

نحوه ارسال این مقادیر به صورت encode شده به سرور را می‌توانید در بخش‌های ارسال متن و فایل و... مشاهده کنید.

دریافت شماره تلفن و یا لوکیشن کاربر از طریق کیبورد

برای دریافت شماره تلفن و یا لوکیشن کاربر باید آرایه‌ای به شکل ذیل ایجاد کنید.

[
    'keyboard' => [
        [
            ['$contact' => 'تلفن'],
            ['$location' => 'لوکیشن']
        ],
    ]
]

توجه داشته باشید که بعد از کلیک کاربر روی این دکمه‌ها پیامی مبنی بر اشتراک گذاری شماره تلفن و یا لوکیشن برای کاربر نمایش داده می‌شود و پس از تایید این پیام، مقادیر به برنامه شما ارسال می‌شود.


Inline Button

inline keyboard

این نوع 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" => "ارسال"],
]