Сообщения Microsoft Bot Framework с кнопками в Facebook Messenger
Мой вопрос относится к указанному выше вопросу. Я пишу бота с использованием node.js, который не использует SDK для создания ботов. Я вручную возвращаю совместимый ответ для службы соединителя ботов ms. Это нормально работает для текстового ответа, но я хочу возвращать более сложные ответы, например кнопки / карусель, которые вы можете вернуть с помощью мессенджера. Основываясь на вопросе, который я связал выше, я догадался о формате и добавил следующее:
response.attachments = [ { "Title": "Choose One: ", "Actions": [{ "Title": "Postback!", "Message": "Postback from button" }, { "Title": "Postback2!", "Message": "Postback2 from button" }] } ];
Заголовок верхнего уровня, кажется, ничего не делает, но действия правильно отображаются как кнопки типа обратной передачи (они отправляют сообщение как содержимое обратной передачи). С помощью мессенджера у вас также есть возможность возвращать кнопки на основе URL-адресов и URL-адреса изображений.
Насколько я могу судить, отсутствует документация по возврату вложений с помощью sdk сборщика узловых ботов. Если бы они были, я бы просто написал бота с sdk, чтобы получить формат ответа.
Итак, у меня вопрос: знает ли кто-нибудь, как правильно вернуть кнопки обратной передачи и URL-адреса в службу подключения ботов, включая сопутствующие изображения, с SDK-конструктором ботов или без него?
Обновление 05.05.2016
Итак, я нашел ссылку ниже, и вы можете увидеть определение свойства вложений:
http://docs.botframework.com/sdkreference/nodejs/interfaces/_botbuilder_d_.imessage.html
Если вы последуете ему в соответствии со спецификацией IAttachment, это заставит меня задуматься, как / почему мой приведенный выше код вообще работает? В качестве теста этого формата я написал следующее:
var att = {};
att.content = "I am content";
att.contentType = "text/plain";
att.contentUrl = "http://www.google.com";
att.fallbackText = "I am fallback text";
att.text = "I am text";
att.thumbnailUrl = "https://pbs.twimg.com/profile_images/638751551457103872/KN-NzuRl.png";
att.title ="I am title";
att.titleLink = "http://yahoo.com";
Теперь в Slack я получаю довольно приятный результат:
Однако в мессенджере я получаю сообщение «Ошибка службы: значение не может быть нулевым. Имя параметра: источник».