通过POST将参数发送到Botframework(和其他通道)
我正在从事机器人项目,机器人将在不同的渠道上工作(web/messenger,可能还有其他渠道) 我实际上是在主动消息中,我们想向用户发送动态消息,例如“你从XXX时间就不跟我说话” 因此,我在bot中创建了一个新的路由,用于发送带有会话引用的消息,目前在emulator/messenger上运行良好,但我们尝试向该请求添加参数,但没有找到任何方法在bot中获取参数通过POST将参数发送到Botframework(和其他通道),botframework,Botframework,我正在从事机器人项目,机器人将在不同的渠道上工作(web/messenger,可能还有其他渠道) 我实际上是在主动消息中,我们想向用户发送动态消息,例如“你从XXX时间就不跟我说话” 因此,我在bot中创建了一个新的路由,用于发送带有会话引用的消息,目前在emulator/messenger上运行良好,但我们尝试向该请求添加参数,但没有找到任何方法在bot中获取参数 server.post('/api/notify/:conversationID', async (req, res) =>
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();
});
在index.js中
您现在可以获得邮政路线呼叫的正文!
:-)您可以通过
channelData
属性传递空活动中的任何参数来实现这一点。由于活动在文本
属性中包含一个空字符串,因此在传递给bot时将不会显示该活动
在本例中,主动消息从浏览器启动
server.get('/api/notify/:userId',异步(req,res)=>{
const{userId}=req.params;
for(对象值的常量conversationReference(conversationReferences)){
等待适配器。continueConversation(conversationReference,async turnContext=>{
var reply={type:ActivityTypes.Message};
reply.channelData={userId};
reply.text='';
等待turnContext.sendActivity(回复);
});
}
res.setHeader('Content-Type','text/html');
书面记录(200);
res.write('已发送主动消息');
res.end();
});
通过channelData
发送userId
的主动消息
userId
由bot通过活动接收。channelData
测试网络聊天也会在活动中显示用户ID
。channelData
希望有帮助 您好,谢谢您的回复!:-)这样,我就面临着其他问题。我正在尝试将param中消息的内容发送到。但是如果param的长度是可扩展的,api将返回我“resourcentfound”,并使用类似param的路由示例:I call/api/notify/userId/blabla。。。(超过50/70个字符),返回“/api/notify/userId/bla不存在”大小或参数有限制吗?这就是我尝试使用post-param实现的原因。为了避免这种情况,在服务器端传入一个包含数据的JSON对象并提取它。在URL中传递长消息不是最佳做法。
server.use(restify.plugins.bodyParser())