Добавление переменных в ответ Directline API в Botframework - PullRequest
0 голосов
/ 03 октября 2019

Я успешно запросил API-интерфейс Botframework Directline , и я получаю этот пример ответа json :

{
  "type": "message",
  "id": "XXXXXXXXXXXXXXXX|0000022",
  "timestamp": "2019-10-02T21:09:25.001296Z",
  "channelId": "directline",
  "from": {
    "id": "LuchoBotV1",
    "name": "LuchoBotV1"
  },
  "conversation": {
    "id": "XXXXXXXXXXXXXXXXX"
  },
  "text": "Hay algo mas en que pueda ayudarte?",
  "speak": "Hay algo mas en que pueda ayudarte?",
  "inputHint": "expectingInput",
  "replyToId": "XXXXXXXXXXXXXXXX|0000020"
}

Теперь я работаю в диалог водопада , который запрашивает у пользователя некоторую личную информацию (лицензия, адрес, продажи), и я хочу добавить эти данные в ответ и получить ответ json, подобный этому:

{
  "type": "message",
  "id": "XXXXXXXXXXXXXXXX|0000022",
  ...
  "context": {address: "Street 123", sales: "5000"}
}

Я хочу знать, возможно ли включить эту информацию в ответ API . Я искал в документации, но ничего не нашел, кроме как отправить текст.

await stepContext.context.sendActivity(messageText, null, InputHints.IgnoringInput);

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Вы можете добавить контекст к данным канала действия.

BotFramework SDK v4 (Узел)

await stepContext.context.sendActivity({
   text: 'Hello, World!',
   channelData: {
     context: {address: 'Street 123', sales: '5000'}
   }
});

Ожидаемый результат

{
  "type": "message",
  "id": "XXXXXXXXXXXXXXXX|XXXXXX",
  ...
  "text": "Hello, World!",
  "channelData": {
    "context": {"address": "Street 123", "sales": "5000"}
  }
}

Надеюсь, это поможет!

0 голосов
/ 03 октября 2019

Вы пытались отправить переменную, в которой хранится информация о пользователе?

Скажите, что у вас есть:

var name = 'Anna';

Вы отправляете ее вместо текста:

await stepContext.context.sendActivity(name);

Ожидаемый результат будет:

{
  "type": "message",
  "id": "XXXXXXXXXXXXXXXX|XXXXXX",
  ...
  "text": "Anna"
}
...