Skype Web SDK - 维护用户会话

时间:2017-04-07 17:20:01

标签: javascript skype skype-for-business

我正在使用Skype Web SDK以下列方式获取用户的联系人列表。

Skype.initialize({
                 apiKey: 'a42fcebd-5b43-4b89-a065-74450fb91255',
                 }, function (api) {
                        var Application = api.application;
                        var client = new Application();
                        client.signInManager.signIn({
                            username: sip,
                            password: pwd
                        })

当我提供用户名(sip)和密码时,这工作正常。但是,当我重新加载页面时,我必须再次提供凭据,因为应用程序重新初始化。有没有办法在初次登录后维持用户的会话一段时间,以便刷新页面不需要再次申请凭证?

我查看了微软已经找不到的样本和文档。我还尝试在初始化后将client对象存储在localStorage并登录,但是当我尝试从localStorage重用该对象来获取联系人列表时,它不起作用

1 个答案:

答案 0 :(得分:0)

http://officedev.github.io/skype-docs/Skype/WebSDK/model/api/interfaces/jcafe.signinmanager.html#signin最后一个示例解释了您可以存储oauth令牌并将其用作未到期令牌。

  

要连接到现有应用的活动频道,请指定该应用的ID:

sm.signIn({
    username: "user1@company.com",
    password: "password1",
    id: "273867-234235-45346345634-345"
});

  

在处理时使用OAuth登录Skype for Business Online   自己检索OAuth令牌的逻辑:

 sm.signIn({
 client_id: '123-456',
 origins: [ 'https://webdir.online.lync.com/AutoDiscover/AutoDiscoverservice.svc/root' ],
 cors: true,
 get_oauth_token: function(resource) {
     // Return a valid unexpired token for the specified resource if you already have one.
     // Else, return a promise and resolve it once you have obtained a token.
     return 'Bearer eyJ0e...';
 }
 });