Получать строковый объект вместо строки с текстом при нажатии на Быстрый ответ в канале FB Messenger (BotFramework v3, Nodejs) - PullRequest
0 голосов
/ 25 января 2019

Сегодня мой бот перестал отвечать мне, нажимая на быстрые ответы в FB Messenger. Вместо получения полезных данных в виде строки теперь возвращается строковый объект с дополнительными полями.

Я использую бота с настраиваемым динамическим диалоговым окном и создаю предполагаемое действие следующим образом:

choices.push(builder.CardAction.postBack(session, "title=Name&params=Some", "Quick Reply Name"));

Я использовал для получения полезной нагрузки в виде строки "title = Name & params = Some" в объекте Session, например:

session.message.text

Но теперь в session.message.text я получаю следующую строку:

"{\r\n  \"type\": \"postBack\",\r\n  \"value\": \"title=Name&params=Some\"\r\n}"

Кто-нибудь еще сталкивался с такой же проблемой?

Это связано с изменениями в Azure Bot Service? И если да, то где мы можем следить за журналом изменений или заметками о выпуске?

1 Ответ

0 голосов
/ 28 января 2019

Поскольку поведение карты зависит от канала, гораздо более вероятно, что это связано с изменением платформы Facebook Messenger.Вы можете просмотреть их список изменений здесь: https://developers.facebook.com/docs/messenger-platform/changelog/

Я вижу, что 8 января произошли изменения.В нем ничего не говорится о поведении postBack, но все же возможно, что могут быть некоторые непреднамеренные или недокументированные изменения, которые отвечают за результаты, которые вы видите.

Похоже, что это должно быть простодесериализовать JSON и извлечь значение.

var payload = JSON.parse(session.message.text).value;

...