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

时间:2018-02-12 08:01:54

标签: node.js botframework

我使用的是Microsoft Bot Framework,网络聊天频道,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");
 });

2 个答案:

答案 0 :(得分:0)

请尝试更改此行:

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

对此:

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

此外,您已将频道设置为网络聊天,但使用https://directline.botframework.com/作为服务网址。

答案 1 :(得分:-1)

请转到您的僵尸服务并查找频道标签,在那里您将看到您的聊天机构打开频道,检查靠近网络聊天行的“问题”链接。