2017-03-16 84 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

相關問題