を読み取るために、Microsoftのグラフを使用して、私は自分のアプリケーションに次のスコープを与えた:すべてのユーザーのカレンダーに
SCOPES = [ "Calendars.Read", "User.Read.All" ]
私はアクセストークンを得ました。このトークンを使用すると、ユーザーを取得することができ、正しい2人のユーザーを取得できます。
私は、自分のカレンダー(管理者)を求める:
https://graph.microsoft.com/v1.0/users/[email protected]/calendarview?startDateTime=#{start_date.to_s}&endDateTime=#{end_date.to_s}
また、これは完璧に動作します。私は、他のユーザーのためにこれを行うところが:
https://graph.microsoft.com/v1.0/users/[email protected]/calendarview?startDateTime=#{start_date.to_s}&endDateTime=#{end_date.to_s}
私は、このエラーメッセージが表示されます:
Access is denied. Check credentials and try again.
ドキュメントによると:https://graph.microsoft.io/en-us/docs/authorization/permission_scopes
Calendars.Read:すべてのメールボックス内のカレンダーを読みます:ログインしていないユーザーがいないすべてのカレンダーの予定を読み取ることをアプリに許可します。
私がアクセストークンと一緒に戻った範囲は、これは「calendars.read user.read.all」です。これで受け入れられました。
私はここで何が欠けていますか?
こんにちはVenkatさんであるとして、組織内のお返事に感謝をすべてのユーザーのカレンダーにアクセスすることができます。 ETAはありますか?ドキュメントにはこれを示すべきではありません。間違っていることを見つけようとする無駄な時間を避けるためです。 – rept
これが原因で問題に同意して申し訳ありません。ドキュメントを更新します。また、クライアント資格情報フローOAuthを使用することができ、管理者の同意を得ている場合は、シナリオを実装する方法があります。あなたが興味があれば教えてください。 –
は絶対に。私の主な目標は、管理者は1回限りの許可を与え、その後、管理者はユーザーをADユーザー(またはADユーザーをインポート)にリンクさせることができ、個人ユーザーはOutlookをTemponiaにインポートしてタイムシートに転送できます。すべてのユーザーが許可を得る必要はありません。 – rept