我正在构建一个 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);
...
}