Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework 重启bot后,主动消息在MS团队中不起作用_Botframework_Microsoft Teams - Fatal编程技术网

Botframework 重启bot后,主动消息在MS团队中不起作用

Botframework 重启bot后,主动消息在MS团队中不起作用,botframework,microsoft-teams,Botframework,Microsoft Teams,我有一个主动消息传递端点,当用户积极参与对话时,该端点可以正常工作。例如,一个用例,其中用户请求检索发票数据,这是异步发生的,并通过主动消息发送回。这个很好用。但是,如果在几周后尝试继续对话,则continueConversation操作将失败。如果我进入团队并启动与机器人的新对话,那么重新发送主动消息(不做任何更改)将再次起作用 在我的一个用例中,bot需要在未来1周以上与用户进行跟踪。因此,我需要弄清楚如何向团队用户发送一条主动消息,即使他们最近没有与机器人对话。我不确定为什么continu

我有一个主动消息传递端点,当用户积极参与对话时,该端点可以正常工作。例如,一个用例,其中用户请求检索发票数据,这是异步发生的,并通过主动消息发送回。这个很好用。但是,如果在几周后尝试继续对话,则
continueConversation
操作将失败。如果我进入团队并启动与机器人的新对话,那么重新发送主动消息(不做任何更改)将再次起作用

在我的一个用例中,bot需要在未来1周以上与用户进行跟踪。因此,我需要弄清楚如何向团队用户发送一条主动消息,即使他们最近没有与机器人对话。我不确定为什么
continueConversation
不起作用,因为会话ID没有变化(而且几个月没有变化,可能永远不会)

下面是我用来发送主动消息的函数

server.post('/api/notify',异步(req,res)=>{
//控制台日志(请求主体);
试一试{
const conversationReference=req.body.conversationReference;
等待适配器。continueConversation(conversationReference,async turnContext=>{
//如果在发送此邮件时遇到与权限相关的错误,请参阅
// https://aka.ms/BotTrustServiceUrl
等待turnContext.sendActivity(请求正文消息);
});
res.setHeader('Content-Type','text/html');
书面记录(200);
res.write('已发送主动消息');
res.end();
}捕获(错误){
console.log('请求错误。请确保您的邮件包含对话引用和邮件文本');
console.log(错误);
appInsightsClient.trackTrace({
消息:`${error.name}-${path.basename(\uu filename)}`,
严重程度:4,
属性:{'error':error.message,'callStack':error.stack,'botName':process.env.botName}
});
res.setHeader('Content-Type','text/html');
书面记录(400);
res.write(“请求错误。请确保您的邮件包含对话引用和邮件文本。

”); res.end(); } });
正如上面所说

如果机器人重新启动,等待主动消息的用户将无法接收该消息,除非他们在机器人重新启动后再次向其发送消息

这就是问题所在。但那一页上的说明并没有给出全部细节。您必须通过
const{MicrosoftAppCredentials}=require('botframework-connector')
添加该类,并设置要传递的serviceUrl(已在
conversationReference.serviceUrl
中提供)

因此,通过这些更改,我添加了
MicrosoftAppCredentials.trustServiceUrl(conversationReference.serviceUrl)在我发送主动消息之前,即使在bot重新启动后,它也开始正常工作。

如果机器人重新启动,等待主动消息的用户将无法接收该消息,除非他们在机器人重新启动后再次向其发送消息

这就是问题所在。但那一页上的说明并没有给出全部细节。您必须通过
const{MicrosoftAppCredentials}=require('botframework-connector')
添加该类,并设置要传递的serviceUrl(已在
conversationReference.serviceUrl
中提供)

因此,通过这些更改,我添加了
MicrosoftAppCredentials.trustServiceUrl(conversationReference.serviceUrl)在我发送主动消息之前,即使在bot重新启动后,它也开始正常工作