1

私は現在、その日の私の見通しカレンダーを表示するラズベリーパイでローカルに実行する基本的なWebサイトを作成しようとしています. しかし、https://graph.microsoft.com/v1.0/me/eventsエンドポイントにアクセスしようとすると、401 無許可エラーが発生します。

これは単純な node.js Express サーバー用であり、グラフ API と対話するためのすべてのコードは、Microsoft が提供するJavaScript クイックスタート アプリから取得されます。クイックスタート アプリは正常に動作し、デモの一部であるエンドポイントの json 応答を確認できhttps://graph.microsoft.com/v1.0/meますが、エンドポイントを変更すると 401 が発生します。

Azure アプリの登録ページでアクセス許可を有効にしたことを確認し、アプリでアクセス許可をスコープにCalendar.read追加しました。calendar.readログインすると、ログイン ポップアップ ウィンドウでカレンダーを読み取る許可が求められますが、これは、アプリがカレンダーにアクセスできる必要があることを示しています。

私のアプリケーション構成 (これもクイックスタート アプリに基づいています) は次のようになります。

const applicationConfig = {
    clientID: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    authority: 'https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    graphScopes: ['calendars.read', 'tasks.read'],
    graphEndpoint: 'https://graph.microsoft.com/v1.0/me/events',
};

これらの変更以外は、コードの残りの部分はサンプル コードと同じです。

4

1 に答える 1

0

User.Readスコープにも含める必要があります。User.Readのドキュメントから:

ユーザーがアプリにサインインできるようにし、アプリがサインインしているユーザーのプロファイルを読み取れるようにします。また、サインインしているユーザーの基本的な会社情報をアプリで読み取ることもできます。

const applicationConfig = {
    clientID: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    authority: 'https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    graphScopes: ['Users.Read', 'Calendars.Read', 'Tasks.Read'],
    graphEndpoint: 'https://graph.microsoft.com/v1.0/me/events',
};
于 2019-04-14T21:22:23.280 に答える