首页 文章

Skype for Business Web SDK - 状态/状态'Be right back'

提问于
浏览
1

我正在将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 回答

  • 1

    遇到同样的问题:如果我登录skype for business(桌面客户端)并将用户设置为 be right back ,我从web sdk获得的值是 away .
    稍微调查一下,我注意到sdk.js中存在该方法:44553(版本1.2.36)

    /**
    * Transform status values from UCWA to values known to jCafe.
    * @param {string} s - status value from UCWA
    */
    function fixStatus(s) {
        return Person.Status[s] || {
            BeRightBack: Person.Status.Away,
            Idle: Person.Status.Away,
            IdleOnline: Person.Status.Away,
            IdleBusy: Person.Status.Away,
            Unknown: Person.Status.Offline
        }[s] || Person.Status.Offline;
    }
    

    在上面,你可以看到状态枚举的声明缺少BRB值,我不明白为什么,特别是因为SDK支持根据documentation的BRB值

    var Status;
    (function (Status) {
        Status.Away = 'Away';
        Status.Busy = 'Busy';
        Status.DoNotDisturb = 'DoNotDisturb';
        Status.Offline = 'Offline';
        Status.Online = 'Online';
    })(Status = Person.Status || (Person.Status = {}));
    

    对我来说,它看起来像是他们在创建SDK之后添加的状态,并且由于复古兼容性的原因,他们正在做一些奇怪的事情,但很难确认而无法访问存储库 .

  • 0

    顺便说一句,伙计们,我意识到了这一点; mePerson对象有两个属性 . 其中一个是 status ,另一个属性是 activity .

    让我解释其中两个之间的区别 . BeRightBack 不是状态,它是一项活动 . BeRightBack 的状态为 Awayactivitybe-right-back . 与 OffWork 相同 . 如果将状态设置为 OffWork ,您将看到 status = Awayactivity = off-work . 我没有找到如何设置 activity . 如果您发现任何问题,请告诉我 .

    这是代码;

    var stasus = 'BeRightBack' ;     
            window.skypeWebApp.personsAndGroupsManager.mePerson.activity.changed(function (status) {
    // alert('Activity Changed to: ' + status);
    console.log('Activity Changed to: ' + window.skypeWebApp.personsAndGroupsManager.mePerson.activity);
    });
    

相关问题