我正在将WEB for Business Web SDK集成到我的web应用程序中 .
我的问题是关于状态变化(存在) . 根据https://ucwa.skype.com/websdk上的示例,我正在通过以下方式收听(我的)状态更改:
client.personsAndGroupsManager.mePerson.status.changed(function (status) {
console.log("My new status: " + status);
// etc...
});
这有效,我可以根据状态更改更新UI .
有一个例外 - >状态'马上回来' . 当状态在Skype客户端或我的应用程序的UI中外部更改为“Be right back”(BeRightBack)时,我将返回状态“Away” .
在检查Edge Tools的开发工具时,我看到以下内容:
POST
{"availability":"BeRightBack"}
和
GET
{"availability":"BeRightBack","_links":{"self": {"href":"/ucwa/oauth/v1/applications.... etc }},"rel":"presence"}
此外,当我以“Be right back”状态登录Skype时登录时,SDK会返回“Away”状态 .
在https://ucwa.skype.com/websdk上运行样本时,我得到相同的结果 . 我将状态更改为'Be right back',警报显示我'm '离开' .
我在这里错过了什么吗?这是预期的行为吗?
2 回答
遇到同样的问题:如果我登录skype for business(桌面客户端)并将用户设置为
be right back
,我从web sdk获得的值是away
.稍微调查一下,我注意到sdk.js中存在该方法:44553(版本1.2.36)
在上面,你可以看到状态枚举的声明缺少BRB值,我不明白为什么,特别是因为SDK支持根据documentation的BRB值
对我来说,它看起来像是他们在创建SDK之后添加的状态,并且由于复古兼容性的原因,他们正在做一些奇怪的事情,但很难确认而无法访问存储库 .
顺便说一句,伙计们,我意识到了这一点; mePerson对象有两个属性 . 其中一个是
status
,另一个属性是activity
.让我解释其中两个之间的区别 .
BeRightBack
不是状态,它是一项活动 .BeRightBack
的状态为Away
,activity
为be-right-back
. 与OffWork
相同 . 如果将状态设置为OffWork
,您将看到status = Away
和activity = off-work
. 我没有找到如何设置activity
. 如果您发现任何问题,请告诉我 .这是代码;