2016-10-03 19 views
0

Skype for Business Web SDKを使用してアプリを作成しようとしています。ここでSkype for business web sdk 401ログインしようとすると権限がありません

はログインコードの一部です:私は上記のコードをしようとすると

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) 

答えて

0

まず、Azure Active Directoryを使用してアプリの権限を取得する必要があります。これによりアクセストークンが返され、すべての要求と共に送信されます。このアクセストークンがなければ、すべての要求は許可されません。アクセストークンを取得するには、Set up Skype Web SDK Onlineの方法に関するこのリソースを参照してください。

あなたのアプリが承認されたら、Skype.InitializeとSignInを使用することができます。これは実際にSkype For Businessにサインインします。

あなたが既に承認している場合は、これとは別に、サーバーからの不正な応答を取得するのは正常です。アプリケーションが最初にあなたにログインしようとすると、サーバが無許可で戻ってくるよりも、承認プロセスが開始されます。

+0

このアクセストークンはどこで使用されるべきですか?私はアクセストークンの使用について何も参照できません。 –

+0

@SoorajChandranアクセストークンの使用について心配する必要はありません。 Skype Web SDKはそれを処理し、すべての要求に自動的にアクセストークンを添付します。 – Shahzad

+0

SDKを使用してユーザーにサインインすることができました。しかし、我々はアクセストークンを使用して同じことをしようとしているので、トークンは永続化され、ユーザは毎回ログインする必要はありません。これは達成可能ですか? –

1

上記で共有したコードスニペットには、ユーザーがAzure Active Directory(AAD)にリダイレクトするコードがないため、ユーザーは自分の資格情報を入力できます。ユーザーがすでにブラウザにサインインしている場合はOKですが、そうでなければAADにリダイレクトしてサインインできるようにし、AADがアプリケーションにリダイレクトした後にapp.signInManager.signInメソッドを呼び出します。

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

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

サインイン中に401sに気づくことになります。その都度、sdkはAADにリダイレクトしてトークンを取得します。ユーザーがすでにサインインしている場合、AADはlocation.hashプロパティのアクセストークンを使用して、指定されたURIにリダイレクトされます。

+0

私はOAuthリクエストを作成し、アクセストークンを取得しました。リクエストヘッダーでこのトークンを使用して、sdkを通じてapiリクエストを行い、ユーザーにサインインするにはどうすればよいですか。これに関する文書はありますか? –

関連する問題