Node.js bot框架按用户地址发送主动消息

Node.js bot框架按用户地址发送主动消息,node.js,botframework,Node.js,Botframework,我使用的是微软的机器人程序框架,Webchat频道,NodeJS 还使用管理我的对话 如何主动向用户发送消息? 我正在数据库中保存用户地址,其中包括用户ID、机器人ID、会话ID等 我已经尝试过了,发送了我保存的最后一个用户的地址,请求进行得很顺利,没有任何错误,但是消息没有到达客户端(webchat) 有什么建议吗 谢谢 主动消息路由、bot树项目: var connector = new builder.ChatConnector({ appId: client.id, appP

我使用的是微软的机器人程序框架,Webchat频道,NodeJS

还使用管理我的对话

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

我已经尝试过了,发送了我保存的最后一个用户的地址,请求进行得很顺利,没有任何错误,但是消息没有到达客户端(webchat)

有什么建议吗

谢谢

主动消息路由、bot树项目:

  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};

此外,您正在将频道设置为webchat,但用于服务url。

向用户的最后地址发送消息时会发生什么情况?您提到没有错误,但是消息没有到达。您是否从WebChat发送消息,然后(不关闭WebChat控件)稍后发送主动消息?或者,在发送主动消息之前是否刷新webchat控件?不会发生任何情况。是的,确切地说,WebChat频道不支持主动消息传递。如果它对您不起作用,我认为您需要提供更多信息,以便我们可以帮助您跟踪问题。您是否为bot配置了ApplicationInsights?在尝试发送主动消息后,您看到了什么吗?谢谢@EricDahlvang,已经配置了ApplicationInsights,但是发送主动消息后没有错误或任何异常。可能会发布您正在使用的代码。否则,就无法诊断问题。