У меня есть несколько вопросов по поводу кнопки обратной передачи.
Мы разрабатываем независимый собственный веб-мессенджер с использованием Smooch.
Я делаю вызов API, используя Smooch-core. (как показано ниже)
this.smooch = await new SmoochCore({
keyId: SMOOCH_KEY_ID,
secret: SMOOCH_SECRET,
....
});
...
await this.smooch.appUsers.sendMessage(this.appId, this.userId, message);
Проблема в том, что он работает иначе, чем наши намерения, когда мы рендерим и нажимаем кнопку.
Чтобы создать кнопку в окне Messenger, создатель приложения отправляет сообщение с действием типа обратной передачи,
получает полезную нагрузку сообщения от webhook,
а затем отображает кнопку и обрабатывает действие нажатия в соответствии с нашей системной политикой.
Вот код сообщения, которое производитель приложений отправляет
{
"role": "appMaker",
"type": "text",
"text": "check in/out infos",
"actions": [
{
"text": "Check In Info",
"type": "postback",
"payload": "{\"text\": \"Check in info\", \"type\": \"start\", \"flow\": \"checkInOut\", \"message_id\": \"MESSAGEID001\", \"data\": {\"intent\": \"info_check_in\"}}"
},
{
"text": "Check Out Info",
"type": "postback",
"payload": "{\"text\": \"Check out info\", \"type\": \"start\", \"flow\": \"checkInOut\", \"message_id\": \"MESSAGEID001\", \"data\": {\"intent\": \"info_check_out\"}}"
},
{
"text": "Early Check In Info,
"type": "postback",
"payload": "{\"text\": \"Early check in\", \"type\": \"start\", \"flow\": \"checkInOut\", \"message_id\": \"MESSAGEID001\", \"data\": {\"intent\": \"info_early_check_in\"}}"
}
]
}
Моя система отображает действия (кнопки) сообщения, используя ReactJS.
<ul className={b('button-group')}>
{
actions.map((action, index) => {
return (
<li
key={index}
onClick={this.onChoiceButtonClick(action)}
>
<span>{action.text}</span>
</li>
);
})
}
</ul>
Поскольку я обрабатываю событие нажатия кнопки в нашей системе, я хочу выполнить то же действие, что и нажатие кнопки обратной передачи, предоставляемой Smooch.
(то есть «trigger»: «postback», например «trigger»: «message: appUser» для smooch.appUsers.sendMessage)
Как я могу справиться с этим?
Буду очень признателен, если вы дадите мне несколько советов. :)