【问题标题】:"office 365" "API" "calendar data report"“office 365”“API”“日历数据报表”
【发布时间】:2014-07-06 04:18:43
【问题描述】:
【问题讨论】:
标签:
api
calendar
resources
report
office365
【解决方案1】:
一般来说,Office API 工具是为客户端构建的,以访问他们自己的数据。不允许用户访问其他用户的数据。但是有一种方法可以让你做你想做的事。
要生成报告的用户可能是某种管理员。因此,您可以授予该用户对每个人邮箱的完全访问权限(通过使用委派功能)。你可以使用这个 powershell 来做到这一点:
Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Admin')} | Add-MailboxPermission -User admin -AccessRights fullaccess -InheritanceType all -AutoMapping $False
来源:http://help.outlook.com/en-us/140/gg709759.aspx
之后,您可以使用标准 Exchange Rest API 访问每个用户的日历
首先,您通过调用获取用户列表:
https://outlook.office365.com/EWS/OData/Users
然后您可以通过调用以下方式获取每个用户的日历项:
https://outlook.office365.com/EWS/OData/Users('EMAILOF@USER')/日历
我不太喜欢这种方法,因为我认为管理员不需要完全权限才能阅读用户的日历。但显然,即使启用了日历共享,这并不意味着日历 REST 端点对邮箱所有者以外的用户可用,所以我看不到任何其他方式。除非您想使用日历共享使用的 ics 格式,否则您的问题属于错误类别。