我们在应用程序中使用Skype for Business Web SDK来显示联系人的存在。
当联系人是用户组织中的某个人时(因此与用户是相同的AD实例),我们在联系人的状态onChange事件上注册一个回调函数,这工作得很好。
然而,当联系人在用户的组织之外(因此是用户的不同AD实例)时,我们发现联系人的状态onChange事件从未触发,因此无法知道他们的状态。
我们使用的代码如下:
skypeContactService.subscribeToStatusChange = function (contact) {
contact.status.changed(function (status) {
...
});
contact.status.subscribe();
};
我不认为这是一个故意的安全措施,因为在Outlook Online的Skype for Business功能中,你可以看到外部联系人的存在。
所以这可能是Skype for Business Web SDK中的一个bug ?或者可能是尚未实现的功能?
是否有人能从微软澄清是否有一个计划,使用户的组织以外的联系人的存在?
任何帮助都将非常感激!
应该要求Federation查看状态并进行会话相关活动,如IM, Audio, Video。我不是Skype/Lync这方面的专家,但我建议您查看联邦文档,因为我认为您没有与外部用户的链接,因此您将无法看到该信息。
要解决您的确切问题,您需要与任何您希望能够查看状态或开始对话的组织建立联邦。
它们可能与您的组织联合,这样它们就可以看到您的状态信息,或者如果它们是在线托管的(O365),则可能存在其他api,可以公开状态信息而不进行联合。他们是否能够与您的任何用户启动IM或A/V对话(它应该失败,因为您的一方没有联合)?