組織内の複数のユーザーのカレンダーの要約を行う WPF アプリを構築しています。同社は Office 365 を使用しているため、Office 365 API が最適な方法であると考えました。
自分のカレンダーにはアクセスできましたが、同僚のカレンダーにアクセスする方法がわかりません。出来ますか?また、概要に含めるユーザーを選択するために、GAL を一覧表示する必要があります。
組織内の複数のユーザーのカレンダーの要約を行う WPF アプリを構築しています。同社は Office 365 を使用しているため、Office 365 API が最適な方法であると考えました。
自分のカレンダーにはアクセスできましたが、同僚のカレンダーにアクセスする方法がわかりません。出来ますか?また、概要に含めるユーザーを選択するために、GAL を一覧表示する必要があります。
[更新]サービス アカウントのサポートが REST API で利用できるようになりました。詳細については、「 Office 365 メール、カレンダー、および連絡先 API を使用したデーモンまたはサービス アプリの構築 (OAuth2 クライアント資格情報フロー)」を参照してください。
Office 365 API に関する質問と関心をお寄せいただきありがとうございます。現在、Office 365 API を使用して、認証されたユーザーの予定表にアクセスできますが、別のユーザーの予定表にはアクセスできません。組織内または組織全体の複数のユーザーのメール/カレンダー/連絡先へのアクセスをサービス アカウントに許可できるようにすることは、私たちのロードマップに記載されており、非常に優先順位が高いため、ご期待ください。
当面は、Exchange Web サービス (EWS) マネージ API を使用してアプリケーションを実装できます。ただし、EWS アプリの偽装を使用すると、サービス アカウントには、予定表だけでなく、ユーザーのメールボックス全体に対する読み取り/書き込みアクセス権が付与されます。Office 365 API でサービス アカウントのサポートを追加すると、OAuth を使用してアプリのアクセスを絞り込み、ユーザーの予定表の読み取りのみを行うことができるようになります。
EWS アプリの偽装がどのように機能するかを説明するいくつかのリンクを次に示します。
ご不明な点や詳しい情報が必要な場合はお知らせください。
ありがとう、
ベンカット
はい、基本認証では可能です (ただし、OAuth2 では可能ではありません)。さらに、あなたのアカウントには、同僚の予定表への読み取りアクセス権が必要です (メールボックス フォルダーのアクセス許可を設定することにより、管理者が行うことができます)。
var authClearText = string.Format("{0}:{1}", yourEmail, yourPassword);
var authEncoded = Convert.ToBase64String(Encoding.Default.GetBytes(authClearText));
var authHeaderValue = "Basic " + authEncoded;
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("Authorization", authHeaderValue);
...
}