Получение обратной передачи из Messenger Webview с помощью агента Dialogflow
Я застрял здесь. Я пытаюсь получить обратную запись от веб-просмотра, открытого в чат-боте Facebook Messenger, который я разрабатываю с помощью библиотеки выполнения DialoFlow с использованием NodeJS.
Я могу отправить полезную нагрузку, которая открывает определенный URL, как показано ниже:
{
"facebook": {
"attachment": {
"type": "template",
"payload": {
"template_type": "button",
"text": "So you want to open the webview huh?",
"buttons": [{
"type": "web_url",
"url": "https://somewebsiteurlwithdataiwanttoget.como",
"title": "Open Website",
"messenger_extensions": true // To get psid and close window event
}]
}
}
}
}
В моем веб-просмотре я могу отправить форму и получить данные из этой формы, используя jQuery Ajax:
let jqxhr = $.ajax({
url: '/webhook', // Fires my webhook
data: { var1: 'Hello', var2: 'World' }, // Sent to my webhook
dataType: 'json'
});
В моей книге я инициализирую своего агента и отправляю эти данные обратно в Messenger Bot, используя пользовательское событие (PS: я использую Express).
// The webhook that receives post data from the form in my webview
router.post('/', function (req, res, next) {
// Initialize Agent
const agent = new WebhookClient({ request: req, response: res })
// Handle the intent
let intentMap = new Map()
// Set default handle if there are no intents
intentMap.set(null, handle)
// Handle stuff from the form
agent.handleRequest(intentMap)
function handle (agent) {
agent.add(`Just a test to see if this message gets to messenger`)
}
})
Тем не менее, я получаю сообщение об ошибке в консолиThis request is not a valid Dialogflow request
"Я не уверен, что я делаю неправильно, и я надеюсь, что кто-то может мне там помочь.
Спасибо.
0 ответов
Отправка json { var1: 'Hello', var2: 'World' }
вот проблема.
WebhookClient ожидает, что параметр req соответствует схеме, которая может быть такой:
{
"responseId": "e72a8020-1051-489d-acb4-95c9ebeadcb7-ee1dc704",
"queryResult": {
"queryText": "view appointment",
"parameters": {
},
"allRequiredParamsPresent": true,
"fulfillmentText": "Hi here you go.",
"fulfillmentMessages": [
.
.
],
"intent": {
"name": "projects\/proj1\/agent\/intents\/77f38791-f2da-41bd-b44f-cef190d26fd9",
"displayName": "2-show-appointments"
},
"intentDetectionConfidence": 1,
"languageCode": "en"
},
"originalDetectIntentRequest": {
"source": "GOOGLE_TELEPHONY",
"payload": {
"telephony": {
"caller_id": "Anonymous"
}
}
},
"session": "projects\/proj1\/iKawldQ1RFSBIckQfGKww"
}
Он содержит информацию о полученном сообщении, обнаруженном намерении и полезной нагрузке выполнения. Вы не имеете права изменять схему.
Кроме того, такой подход нежизнеспособен. В соответствии с этим в диалоговом потоке нет обратных вызовов для событий веб-просмотра на платформе обмена сообщениями.