我正在构建一个WPF应用程序,该应用程序对组织中的多个用户日历进行了总结。公司正在使用Office 365,因此我认为Office 365 API是最佳方式。
我设法访问了我自己的日历,但我不知道如何访问我的同事'日历。 可能吗? 我还需要列出GAL,以便选择我想在摘要中包含哪些用户。
答案 0 :(得分:9)
[更新] 现在可以为REST API提供服务帐户支持。有关详细信息,请参阅Building Daemon or Service Apps with Office 365 Mail, Calendar, and Contacts APIs (OAuth2 client credential flow)。
感谢您对Office 365 API的疑问和兴趣!目前,您可以使用Office 365 API访问经过身份验证的用户的日历,但不能访问其他用户的日历。允许服务帐户被授权访问组织内的多个用户的邮件/日历/联系人或整个组织是我们的路线图,并且优先级很高,敬请期待。
同时,您可以使用Exchange Web服务(EWS)托管API来实现您的应用程序。但是,通过EWS app模拟,服务帐户具有对用户的整个邮箱的读/写访问权限,而不仅仅是日历。在Office 365 API中添加对服务帐户的支持后,您将能够使用OAuth并缩小对应用的访问权限,以便只读取用户的日历。
以下是一些解释EWS app模拟如何运作的链接。
如果您有任何疑问或需要更多信息,请与我们联系。
谢谢,
Venkat
答案 1 :(得分:3)
是的,可以使用基本身份验证(但不能使用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);
...
}