2017-03-16 85 views
1

我正在将Skype for Business Web SDK集成到我的web应用程序中。Skype for business Web SDK - 存在/状态'马上回'

我的问题是关于状态更改(状态)。 据我听着下面的方法(我的)状态变化对https://ucwa.skype.com/websdk样本:

client.personsAndGroupsManager.mePerson.status.changed(function (status) { 
    console.log("My new status: " + status); 
    // etc... 
}); 

这工作,我可以根据状态变化更新UI。

有一个例外 - >状态'马上回来'。 当在Skype客户端或我的应用程序的用户界面中将状态更改为'Be right back'(BeRightBack)后,我将恢复状态'离开'。

当Edge的开发工具检查,我看到以下内容:

POST 
{"availability":"BeRightBack"} 

GET 
{"availability":"BeRightBack","_links":{"self": {"href":"/ucwa/oauth/v1/applications.... etc }},"rel":"presence"} 

此外,当我登录同时登录到Skype的与“马上回来”状态,SDK返回状态'离开'。

运行https://ucwa.skype.com/websdk上的样本时,我得到了相同的结果。 我将状态更改为“马上回来”,并且警报显示我“离开”。

我在这里错过了什么吗?这是预期的行为?

回答

1

运行到相同的问题:如果我登录到Skype的业务(桌面客户端),并将用户设置为be right back我从网络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

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后和复古兼容的原因,他们都在做怪,加了状态支持BRB值但是,如果不访问存储库,很难确认。

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); 
}); 
+0

您能否指定您使用的是哪个版本的SDK? 我正在使用SkypeBootstrap_1.2.36.min.js,并且从不返回活动 - 右后卫。 我确实看到活动工作正常,工作正常。有趣的是,mePerson对象的activity属性返回字符串off-work,而person对象的activity属性返回字符串Off Work。 我还没有找到在Web应用程序中设置活动的方法。 对于状态它是personsAndGroupsManager.mePerson.status.set(状态),但没有像这样的事情personsAndGroupsManager.mePerson.activity.set(活动) – rile

+0

这里声明一般用法[link](https://msdn.microsoft.com/ en-us/skype/websdk/docs/gettingstarted) 我试过1.2.36和1.2.15(一般用法)。但其中两人有相同的结果。并且是'mePerson.activity'不起作用。如果您找到方法,请告诉我。 – tntstn

相关问题