我正在寻找一种方法,以便从Office 365日历数据中为我们所有使用Office 365的员工生成报告。我查看了http://msdn.microsoft.com/en-us/library/office/dn605896%28v=office.15%29.aspx#bkCalItems上的信息,它是用于日历数据的API。但是,还不清楚我是否真的有权访问日历中的数据-或者它是否会受到“访问保护”。如果我有正确的安全性/ Azure Active Directory,是否可以为所有办公室工作人员编写日历数据报告?我不想要多个日历,或者多次登录并导出每个人的数据。我想要一个显示日历日期的综合报告,然后为该日期,每个人的描述和开始/结束时间的分配。
希望这是清楚的-并感谢您的指导。
-j
发布于 2014-07-06 04:18:44
通常,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 ')/Calendar获取每个用户的日历项目
我真的不喜欢这种方法,因为我认为管理员不应该需要完全的权限才能读取用户的日历。但显然,即使启用了日历共享,也不意味着日历REST端点对邮箱所有者以外的其他用户可用,因此我看不到任何其他方法。除非您想使用日历共享所使用的ics格式,但这样您的问题就进入了错误的类别。
https://stackoverflow.com/questions/24501046
复制相似问题