0

我正在尝试使用 Skype Web SDK 登录。我从一些教程中获取了用于登录的代码。这是代码:

$('#signin').click(function () {
        $('#signin').hide();
        log('Signing in...');
        //debugger;
        // and invoke its asynchronous "signIn" method
        client.signInManager.signIn({
            username: 'ridaiftikhar@hotmail.com',
            password: 'sdfafa2'
        }).then(function () {
            //log in worked!
            alert('Signed in');
            $('#loginbox').hide();
            $('#chatfunctions').show();
        }, function (error) {
            //Something went wrong.
            alert(error);
        });
});

我的问题是第一个功能then不起作用。如果我提供了非法用户名,它会向我显示错误消息,但即使我提供了正确的凭据,它也不会显示“已登录”警报。

4

3 回答 3

1

从您的代码片段中,我看到您正在使用 Hotmail 帐户登录。您尝试执行的登录代码是针对 Skype for Business(不是 Skype 消费者)的 Skype Web SDK 的代码。请使用有效的 Skype for Business 帐户登录。另外需要注意的是:如果您使用的是基于用户名+密码的身份验证,那么您的组织部署了 Skype for Business 必须支持基于用户名+密码的身份验证。否则,登录将失败。

于 2016-08-02T18:37:56.913 回答
0

当只给出usernamepassword参数时,SDK 会尝试通过转到lyncdiscover.hotmail.comlyncdiscoverinternal.hotmail.com(因为给定的用户名是@hotmail.com)来发现该用户的适当服务器的 URL。由于这两个域都不存在,因此 SDK 不会得到响应,也不会解析/拒绝返回的 Promise 对象。正如 Sid 所说,登录需要正确的 S4B 用户名。

SDK 确实返回了一个 Promise 对象,但它不是本机 Promise - SDK 有自己的 polyfill。

于 2016-08-09T21:10:59.693 回答
0

好吧,似乎client.signInManager.signIn正在返回一个Promise并且当前浏览器本身不支持 Promise,尽管您可以使用Promise polyfill来实现这一点。

于 2016-08-02T07:00:51.260 回答