دریافت پیام از طرف کاربر

زمانی که یک کاربر (فرد، گروه، کانال یا ربات) یک درخواست اعم از پیام یا دستور خاص را به ربات شما ارسال می‌کند، آیگپ درخواست کاربر را به آدرس وب هوک شما ارسال می‌نماید.

در تمام درخواست‌هایی که شما دریافت می‌کنید دو قسمت وجود دارد:

  1. body: درخواست کاربر در این قسمت به صورت کد شده یا serialized وجود دارد.
  2. params: در این قسمت ActionId درخواستی ذخیره شده است.

شما برای دریافت درخواست کاربر ابتدا باید ActionId را دریافت کنید و با لیست ActionId های آیگپ تطبیق دهید و نام پروتو بافر مربوطه را پیدا کنید.

سپس پروتو مربوطه را با ورودی body ارسال شده deserialize کنید.

function getMessage(req , res) => {
const actionId = +req.query.actionId;
if (actionId == 30201) {
const data = ChatSendMessageResponse.deserializeBinary(req.body) : req.body;
// send to igap Api
const roomId = data.room_id;
const roomMessage = data.room_message;
const message = data.room_message.getMessage()
const attachment = data.room_message.getAttachment()
const location = data.room_message.getLocation ()
//you can see all methods in ChatSendMessageResponse proto
}
}

حال شما می توانید از متد های موجود در فایل proto مورد نظر برای دریافت بخش های مختلف درخواست کاربر استفاده کنید .