BOT框架通过用户地址发送主动消息



我正在使用Microsoft Bot Framework,Webchat Channel,nodejs

也使用bot-Trees管理我的对话。

如何主动发送用户?我保存了我的数据库的用户地址,其中包括用户ID,bot ID,对话ID等。

我已经尝试过此解决方案,发送了我保存的最后一个用户的地址,请求进行得很好,没有任何错误,但这些消息没有到达客户端(webchat(。

有什么建议?

谢谢

主动消息路线,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};

另外,您正在将频道设置为webchat,但使用https://directline.botframework.com/用于服务URL。

请转到您的bot服务并查找"频道"选项卡,您将在那里查看聊天机器人打开的频道,检查靠近Web Chat Row的" essess"链接。

最新更新