2017-12-04 8 views
3

MicrosoftグラフAPIでカレンダーを取得するために呼び出すときに権限がなくなったため、この確認を使用してアクセストークンを取得します。office365グループのカレンダーにアクセスできない

私は、カレンダーでGet HTTPリクエストを取得するときに、アクセストークンが認証されていない呼び出しの結果となる資格情報で作成されないことが問題だと思います。どのようにコードを変更して資格情報を送信し、より多くの特権を持つより良いトークンを入手できるようにすることができますか?

Azureポータルでは、アプリケーションのアクセス許可が正しく設定されていないかどうかを確認するためのすべてのアクセス許可を付与しました。

AuthenticationContext authenticationContext = new AuthenticationContext(authString, false); 
ClientCredential clientCred = new ClientCredential(_azureAd_ClientId, _azureAd_SecretKey); 

string tokenResult; 

AuthenticationResult authenticationResult; 
try 
{ 
    authenticationResult = await authenticationContext.AcquireTokenAsync(_azureAd_GraphResource, clientCred); 
    var user = authenticationResult.UserInfo; 
    string_token = authenticationResult.AccessToken; 
    tokenResult = JsonConvert.SerializeObject(authenticationResult); 
} 
catch (Exception ex) 
{ 
    throw new Exception(ex.Message, ex.InnerException); 
} 
+0

'_azureAd_GraphResource'の値は' https:// graph.microsoft.com'ですか? – juunas

+0

はい、終了スラッシュ "https://graph.microsoft.com/" –

+0

うん、それは問題ありません。アプリの権限を追加しましたか?クライアント資格情報を使用しているため、委任されたアクセス許可はここでは適用されません。また、これらの権限を付与する必要があります。ポータルの[許可]ボタンをクリックします。 – juunas

答えて

0

コメントを読んで、アプリケーションに再構成されたアクセス許可を与えるには、新しい同意のプロンプトを表示する必要があるようです。これがV1アプリの場合は、リクエストの最後にprompt = admin_consentを追加してください。これがV2アプリの場合は、/ adminconsentエンドポイントを使用します。その詳細はhereです。

管理者の同意に関する一般的な文書もあります。here

関連する問題