Как вызвать метод с помощью action.submit в приложении адаптивной карты Bot - PullRequest
0 голосов
/ 04 марта 2019

Я использую адаптивную карту.(Bot Framework SDK v3) Мне нужно получить значения в адаптивной карте, а также мне нужно вызвать некоторый метод в коде позади.Это моя адаптивная карта Адаптивная карта .

1 Ответ

0 голосов
/ 04 марта 2019

Я собираюсь угадать ответ;если вы прочитали https://docs.microsoft.com/en-us/cortana/skills/adaptive-cards

Тогда ваш вопрос может быть "ну, как выглядит ответ?"Я согласен, это не ясно из документации.

Когда вы нажимаете submit.action, вы получите все идентификаторы и значения обратно в полезную нагрузку сообщения.Например, если вы посмотрите здесь пример ввода https://adaptivecards.io/samples/Inputs.html

Ваше ответное сообщение на клик будет следующим: {"SimpleVal":"My name","UrlVal":"","EmailVal":"","TelVal":"","MultiLineVal":"","NumVal":"1","DateVal":"2017-09-20","TimeVal":"16:59","CompactSelectVal":"1","SingleSelectVal":"1","MultiSelectVal":"1;3","AcceptsTerms":"on","CommentVal":""}

Ваше умение должно быть достаточно умным, чтобы распознать message.textкак json, а затем используйте идентификатор из поля формы, чтобы получить значение.

Обратите внимание, что Cortana немного отличается в том, КАК возвращаются результаты адаптивной карты.Другие каналы будут прикреплять значение к сообщению, поэтому, если вы хотите поддерживать несколько каналов ...

 if( session.message.text && session.channel === 'cortana' ) 
  { ... digest the json in the message ... }

 if( session.message.value ) 
  { ... digest the values attached to the message for non-cortana ... }

А также обратите внимание, что вы также можете добавить к действию данные, которые можно отправить в полезной нагрузке

{
  "type": "Action.Submit",
  "title": "Submit",
  "data": {
    "id": "1234567890"
  }
},
...