当消息从bot发送到SfB客户端时,如果SfB客户端窗口被最小化,或者没有在屏幕的右下角,或者在SfB客户端中添加了多个会话,则SfB客户端不会收到消息。
Bot Info
SDK平台:Node.js
botbuilder版本:3.8.4
活跃频道:Skype for Business
部署环境:Azure Bot服务,Azure应用服务
问题说明
我们为Skype for Business创建了一个机器人,以便与SFB客户开始对话。在我们的例子中,当使用以下代码从机器人发起对话时,如果 - 如果 - SFB客户端没有从机器人接收消息 用户已最小化SFB窗口, 要么 如果SFB客户端窗口不在屏幕的右下角附近。 要么 如果那时它只能从bot接收消息。 要么 如果用户在SFB客户端中添加了多个会话,
SFB客户端收到来自Bot的消息 - 如果 - 用户在屏幕的右下角有SFB窗口,它在SFB客户端窗口中只有一个覆盖(即与Bot的对话)。
var restify = require('restify');
var builder = require('botbuilder');
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: //GUID,
appPassword: password,
stateEndpoint: process.env.BotStateEndpoint,
openIdMetadata: process.env.BotOpenIdMetadata
});
// Listen for messages from users
server.post('/api/messages', connector.listen());
var inMemoryStorage = new builder.MemoryBotStorage();
// Create your bot with a function to receive messages from the user
var bot = new builder.UniversalBot(connector)
.set('storage', inMemoryStorage);
let addr1 =
{
channelId: 'skypeforbusiness',
user: {
id: 'sip:xyz@abcd.com'
},
channelData: {
tenant: {
id: //GUID
}
},
bot:
{
id: 'sip:botid@abcd.com',
name: 'BotName'
},
serviceUrl: 'https://api.skypeforbusiness.com/platformservice/botframework/'
};
bot.loadSession(addr1, function (err, session) {
session.send('hi00');
});
bot.dialog('/', intents);
复制步骤
最小化SFB客户端窗口。
启动bot以启动对话,并将消息发送到SFB客户端。 要么 添加另一个会话到SFB客户端(与BOT之外的其他联系人)。 启动bot并从bot发起对话,将消息发送给SFB客户端。
在我们的例子中,我们在VSCode中进行stat调试并将调试器附加到NGRok)
预期行为
当Bot启动时,SFB客户端必须接收机器人发送的消息,无论客户端窗口是否最小化,还是有多个会话adde,或者SFB客户端窗口都在屏幕上的任何位置。
实际结果
当从Bot发送消息时,如果SFB客户端窗口不在屏幕的右下角,或者用户在SFB客户端窗口中有多个会话,则它不会从Bot接收消息。
错误消息。 - > 运行bot时没有看到错误消息。