node.js - 在 Botframework 中向 Directline API 响应添加变量
问题描述
我已成功向Botframework Directline API请求,并获得了以下 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);
解决方案
您是否尝试过发送存储用户信息的变量?
假设你有:
var name = 'Anna';
您发送它而不是文本:
await stepContext.context.sendActivity(name);
预期输出为:
{
"type": "message",
"id": "XXXXXXXXXXXXXXXX|XXXXXX",
...
"text": "Anna"
}
推荐阅读
- java - 带有非 Oracle JDK 的 Java 8 中的 JavaFX
- firebase - React Native Firebase Analytics:第二个参数必须是一个对象
- php - 未找到基表或视图 未找到表“tenancy.websites”
- reactjs - 在无状态组件上使用 React.memo() 时出错
- haskell - 从用户那里获取输入:Haskell
- sql-server - 通过 t-sql 为现有列配置 Always Encrypted
- c# - Internet Explorer 未重定向到 HTTPS,其他浏览器工作正常
- javascript - 使用 .sub() 和 react 创建化学式
- django - 如何从上一个错误/失败中恢复 Django 测试套件?
- mysql - 使用 mysqld_safe 运行 MySQL 后如何停止它?