node.js - 机器人框架通过用户地址发送主动消息

标签 node.js botframework

我正在使用 Microsoft Bot Framework、Webchat channel 、NodeJS

同时使用 Bot-Trees管理我的对话。

如何主动向用户发送消息? 我在我的数据库中保存了用户地址,其中包括用户 ID、机器人 ID、对话 ID 等。

我试过了 this solution ,发送我保存的最后一个用户的地址,请求顺利进行,没有任何错误,但消息没有到达客户端(网络聊天)。

有什么建议吗?

谢谢

主动消息路由,bot-trees 项目:

  var connector = new builder.ChatConnector({
  appId: client.id,
  appPassword: client.password,
  });

  var bot = new builder.UniversalBot(connector);

  app.post(`/proactiveTest`, (req, res, next) => {
if (!req.query.addressId ||!req.query.userId || !req.query.convId || !req.query.botId){
  res.send("Missing params")
}

let channelId = 'webchat';
let id = req.query.addressId;
var user = {id : req.query.userId, name : req.query.userName};
let conversation = {id : req.query.convId};
let botDetails = {id : req.query.botId , name : req.query.botName};
let serviceUrl = "https://directline.botframework.com/";
let address = {id, channelId, user, conversation, botDetails, serviceUrl};

var msg = new builder.Message().address(address);
msg.text("This is a test");
msg.textLocale('en-US');
bot.send(msg);

res.send("Message sent");
 });

最佳答案

请尝试更改此行:

let address = {id, channelId, user, conversation, botDetails, serviceUrl};

对此:

let address = {id, channelId, user, conversation, bot: botDetails, serviceUrl};

此外,您将 channel 设置为网络聊天,但使用 https://directline.botframework.com/对于服务 url。

关于node.js - 机器人框架通过用户地址发送主动消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48741845/

相关文章:

javascript - 无法从 React 客户端向 Node.js websocket 服务器发送消息

azure - 没有 Azure 的 Bot 框架可能吗?

javascript - use strict 不允许在 Node.js 中使用它

node.js - 如何列出 package.json 中可用的所有命令?

javascript - Vetur 找不到 package.json

python - 如何使用 WaterfallDialog 获取当前用户详细信息?

node.js - 使用 BotFramework (NodeJS) 将机器人交给人类

node.js - 在 npm-scripts 中传递环境变量

c# - 如何使用 C# Bot Framework 创建图表?

node.js - MS Bot Framework (NodeJs) Mocha 测试,无重复逻辑