在Office 365 API中访问其他用户的日历

问题描述:

我正在构建一个WPF应用程序,该应用程序正在对组织中几个用户的日历进行摘要。该公司正在使用Office 365,所以我认为Office 365 API是最好的选择。在Office 365 API中访问其他用户的日历

我已经设法访问自己的日历,但我不知道如何访问我的同事的日历。 这可能吗? 我还需要列出GAL,以便选择我想要包含在摘要中的哪些用户。

[更新]服务帐户支持现在可用于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应用程序模拟,服务帐户对用户的整个邮箱具有读/写访问权限,而不仅仅是日历。一旦我们在Office 365 API中添加了对服务帐户的支持,您就可以使用OAuth并缩小应用的访问范围,只读取用户的日历。

以下是解释EWS应用程序模拟如何工作的几个链接。

请让我知道如果您有任何疑问或需要更多的信息。

感谢,

Venkat

+2

通过API访问其他用户的日历的任何更新? – Serge 2016-01-14 22:35:28

+0

@venkat对此有何更新?我们是否可以访问其他用户的日历? – 2016-05-22 11:03:32

+0

还没有,对不起。这仍在继续。谢谢。 – 2016-05-24 02:55:36

是的,这是可能的基本身份验证(但不与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); 
    ... 
}