【发布时间】:2019-11-21 17:12:45
【问题描述】:
我正在开发机器人项目,机器人将在不同的渠道(网络/信使和可能其他)上工作
我实际上是在主动消息,我们想向用户发送动态消息,例如“你从 XXX 时间开始不跟我说话”
所以我在 bot 中创建了一条新路由,用于发送带有对话引用的消息,目前它在模拟器/信使上运行良好,但我们尝试向此请求添加参数,但我们没有找到任何方法在机器人中获取参数。
server.post('/api/notify/:conversationID', async (req, res) => {
console.log(req)
if (req.params.conversationID){
console.log(req.params.conversationID)
}
for (let conversationReference of Object.values(conversationReferences)) {
if (typeof conversationReferences[req.params.conversationID] !== "undefined"){
await adapter.continueConversation(conversationReferences[req.params.conversationID], async turnContext => {
await turnContext.sendActivity(req.params.message);
});
}else {
await adapter.continueConversation(conversationReference, async turnContext => {
await turnContext.sendActivity(req.params.message);
});
}
}
res.setHeader('Content-Type', 'text/html');
res.writeHead(200);
res.write('<html><body><h1>Test send.</h1></body></html>');
res.end();
});
我也尝试过使用 GET,并在 /api/notify/CONVID/MESSAGEtoUSER 等 URL 中发送参数 但是如果消息长度超过 70 个字符,则机器人自动返回方法不存在,就像长度“大”时一样,但理解为路由而不是参数......
有人知道我们如何获得参数吗?
谢谢!
编辑:
最后我找到了一种将参数作为 POST 调用传递的方法。
需要开启restify的bodyParser,添加这一行:
server.use(restify.plugins.bodyParser())
在 index.js 中
您现在可以获取 POST 路由调用的正文了! :-)
【问题讨论】:
标签: botframework