0

Skype for Business Web SDK を使用してアプリを作成しようとしています。

ログインコードの一部は次のとおりです。

var config = {
    apiKey: 'a42fcebd-5b43-4b89-a065-74450fb91255', // SDK
    apiKeyCC: '9c967f6b-a846-4df2-b43d-5167e47d81e1' // SDK+UI
};

var Skype;
var app;
console.log(Skype);

Skype.initialize({ apiKey: config.apiKey }, function(api) {
    window.skypeWebAppCtor = api.application;
    window.skypeWebApp = new api.application();
    Application = api.application;
    app = new Application();
    console.log("app", app);
    skypeSignIn();
    window.skypeWebApp.signInManager.state.changed(function(state) {
        console.log("in",state);
    });
}, function(err) {
    console.log(err);
    console.log("cannot load the SDK");
});

var skypeSignIn = function() {
    app.signInManager.signIn({
        "client_id": "my-GUID", // GUID obtained from Azure app registration.
        "origins": ["https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root"],
        "cors": true,
        "redirect_uri": 'https://freshservice.com',
        "version": 'freshservice skype for business integration'
    }).then(function() {
        alert('Logged in!');
    });

上記のコードを試すと、元の URL でエラー 401 が発生します -

GET https://webdirin1.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user 401 (Unauthorized)

これはどのように修正できますか?

4

2 に答える 2

1

上記で共有したコード スニペットには、ユーザーが資格情報を入力できるように、ユーザーを Azure Active Directory (AAD) にリダイレクトするコードが含まれていません。ユーザーが既にブラウザーにサインインしている場合はこれで問題ありませんが、それ以外の場合は、AAD にリダイレクトし、ユーザーがサインインできるようにし、AAD がアプリケーションにリダイレクトしてからapp.signInManager.signInメソッドを呼び出す必要があります。

詳細については、このページをご覧ください: https://msdn.microsoft.com/en-us/skype/websdk/developwebsdkappsforsfbonline

指定したリダイレクト URI が有効な応答 URL として AAD アプリケーションで構成されていることを確認します。

サインインのプロセス中に、401 に気付くでしょう。これが発生するたびに、sdk は AAD にリダイレクトしてトークンを取得します。ユーザーが既にサインインしている場合、AAD はプロパティのアクセス トークンを使用して、指定された uri にリダイレクトする必要がありlocation.hashます。

于 2016-10-04T06:56:50.227 に答える