دریافت کدها

در صورتی که می خواهید از nodejs برای برنامه خود و ارتباط با api گپ استفاده کنید می توانید از پکیج ایجاد شده برای راحتی کار با api که در مخازن npm موجود می باشد ، استفاده کنید .

https://www.npmjs.com/package/gap_api

برای شروع کار می توانید با استفاده از composer و دستور زیر کلاس کمکی و نمونه کدهای لازم را به پروژه خود اضافه کنید .

$ npm install gap_api 

کار با API

برای شروع کار کافیست ماژول مربوطه را به شکل به برنامه خود اضافه کنید .

var GapApi = require('gap_api');
var gap = new GapApi('<your token>');
gap.sendText(chat_id, 'salam');

پیوستن کاربر به سرویس (join)

در صورت پیویستن کاربرجدیدی به سرویس مذکور تابع callback اجرا خواهد شد به همراه پارامتری که شامل اطلاعات کاربر عضو شده می باشد .

    gap.onJoin(<callback func>)

کلیک بروی Inline Button توسط کاربر - (triggerButton)

در صورت کلیک کاربر بروی Inline Button از نوع cb_data تابع callback به همراه داده های از پیش تعیین شد اجرا خواهد شد .

    gap.onTriggerButton(<callback func>)

تکمیل و ارسال Form توسط کاربر (submitForm)

پس از ایجاد فرم و ارسال آن به کاربر توسط توسعه دهنده ، هنگامی که کاربر فرم را پر کرده و ارسال می کند callback داخل onSubmitForm اجرا خواهد شد و دسترسی به اطلاعات فرم را مهیا می سازد .

    gap.onSubmitForm(<callback func>)

تکمیل پرداخت توسط کاربر (paycallback)

پس از تکمیل روال پرداخت توسط کاربر تابع callback اجرا خواهد شد و می توانید به اطلاعات پرداخت و وضعیت آن دسترسی پیدا کنید .

    gap.onPaid(<callback func>)

نوشتن متن و یا دستور توسط کاربر و ارسال آن

در صورت تایپ متن و ارسال آن می توانید به دو شکل به آن دسترسی داشته باشید در شکل اول پس از ارسال هر پیام بدون توجه متن مقدار callback اجرا خواهد شد و در روش دوم فقط زمانی تابع callback اجرا خواهد شد که متن وارد شده توسط کاربر با متن regular که به عنوان پارامتر اول پاس داده اید همخوانی داشته باشه .

gap.onText(<callback func>);  // در صورت ارسال هر گونه متن توسط کاربر callback اجرا خواهد شد .
gap.onText(<Regular expression>, <callback func>); // تنها در صورتی که انجام Regular بروی متن ورود کاربر موفقیت آمیز باشد callback اجرا خواهد شد .

ارسال پیام

var chat_id = '<شناسه chat_id کاربر مورد نظر>';
// send text
gap.sendText(chat_id, '<متن ارسالی برای کاربر>', <مقدار اختیاری reply keyboard>, <مقدار اختیاری Inline Button>, <مقدار اختیاری form>);

ارسال تصویر

....

gap.sendImage(chat_id, '<مسیر تصویر مورد نظر برای مثال myfile.jpg>', '<توضیحات و یا همان caption فایل>', <مقدار اختیاری reply keyboard>);

ارسال ویدئو

....

gap.sendVideo(chat_id, '<مسیر فایل مورد نظر برای مثال myfile.mp4>', '<توضیحات و یا همان caption فایل>', <مقدار اختیاری reply keyboard>);

ویرایش پیام

....

gap.editText(chat_id, message_id, '<متن جدید پیام>', <مقدار اختیاری Inline Button>);

حذف پیام

....

gap.deleteMessage(chat_id, message_id);

answerCallback

....

gm.answerCallback(chat_id, callback_id, '<متن پیام ارسالی شما>', '<چگونگی نمایش پیام>');

ارسال به همراه Reply Keyboard

با استفاده از قابلیت Reply Keyboard می توانید پس از ارسال پیام به کاربر به امکان انتخاب چند گزینه از بین گزینه های موجود را فراهم کنید یعنی در واقع با استفاده از این فابلیت به جای باکس ورود متن به کاربر چند دکمه که شما از تعیین کرده اید نشان داده خواهد شد که با کلیک کاربر بروی هر یک دستوری که شما برای آن در نظر گرفته ایت به کاربر نشان داده خواهد شد .

برای مثال سوالی از کاربر پرسیده خواهد شد که دو دکمه بلی و خیر به کاربر نشان داده خواهد شد که در صورت کلیک کاربر بروی بلی دستور yes برای شما ارسال خواهد شد و در صورت کلیک بروی خیر دستور no طبق روال دریافت پیام برای شما ارسال خواهد شد .

....
var replyKeyboard = [[{yes: 'بلی'}, {no : 'خیر'}]]
// send text
gm.sendText(chat_id, 'آیا از محتوای سرویس رضایت دارید ؟', replyKeyboard);

ارسال به همراه Inline Button

Inline Button هم دارای قابلیت هایی مشابه Reply Keyboard می باشد برای اطلاعات بیشتر مستندات Inline Button مشاهده کنید

....
// send text
gm.sendText(chat_id, 'آیا از محتوای سرویس رضایت دارید ؟', null, [
  [
    {text' : 'Yes', 'cb_data' : 'yes'},
    {text' : 'No', 'cb_data' : 'no'},
  ],
  [
    {text' : 'help', 'url' : 'http://google.com'},
  ]
]);

تایید انجام موفقیت آمیز پرداخت

    gap.payVerify(chatId, ref_id);