私はオフィス365が新しく、残りのAPIにアクセスすることに問題があります。 私はのカレンダーとメールAPIの残りのAPIをテストしようとしているので、私はPostmanを使用することに決めました。ただし、これらのAPIをテストするには、Authorizationヘッダーにアクセストークンが必要です。トークンの入手方法を理解するために、私はサンプルプロジェクトhereを取得し、このローカルサイトで設定、実行、サインインして、ローカルストレージにキャッシュされたトークンを取得し、そのトークンをPostmanのさらなるリクエストに使用することにしました。しかし、私がテストしたすべてのリクエストは、「401 unauthorized request」を返しました。カレンダーAPIへのアクセスreturn 401 Unauthorized
私がやったこと:
- は、完全なアプリの権限と委任権限を追加O365アカウント
- に関連したAzureのADDで新しいアプリを登録します。
- マニフェストファイルの 'oauth2AllowImplicitFlow'をtrueに更新します。 app.jsで
- クローンサンプルプロジェクト
、私はアプリを実行した後
function config($routeProvider, $httpProvider, adalAuthenticationServiceProvider) { $routeProvider .when('/', { templateUrl: 'views/home.html', controller: 'HomeController', controllerAs: 'home', requireADLogin: true }) .otherwise({ redirectTo: '/' }); // The endpoints here are resources for ADAL to get tokens for. var endpoints = { 'https://outlook.office365.com': 'https://outlook.office365.com' }; // Initialize the ADAL provider with your tenant name and clientID (found in the Azure Management Portal). adalAuthenticationServiceProvider.init( { tenant: 'mytenantname.onmicrosoft.com', clientId: '<my cliend Id>', endpoints: endpoints, cacheLocation: 'localStorage' }, $httpProvider ); };
次のように設定機能の内容を変更する変更する、それだけで罰金で私を署名し、Iトークンを取得することもできますが、そのトークンも要求する権限がありません。 トークンをデコードして 'aud'の値を見たが、それは "https://outlook.office365.com/"を返さなかった。 this urlでは、著者は
は、だから私は何を逃した?は「メール、カレンダー、または連絡先のAPIの」https://outlook.office365.com/「これがあるべき」と述べましたか
私はそのgihubプロジェクトに提供するメール送信機能のデフォルトを使用していて、それがaccess_tokenは のhttpを得ることができなかったことが判明://私は。imgur.com/4500mK6.png と私はAPI呼び出しを行うためにid_tokenを使用したことを認めました。では、なぜaccess_tokenが空であるのかを検出する方法は? –
答えは –
です。すでにアクセストークンを取得できますが、URLを入力してサンプルコードではなく、手動で認証コードを取得しています。この問題は、Azure ADのアプリケーションの設定に関する許可に関連していません。なぜなら私はすでにExchange Onlineに対して完全なアクセス許可を設定しているからです。それでも理由がわからない –