【问题标题】:Access a shared calendar (such as a meeting room via Office 365 REST API)访问共享日历(例如通过 Office 365 REST API 的会议室)
【发布时间】:2017-05-25 01:09:12
【问题描述】:

我正在使用 Office 365 REST api 访问我帐户的日历。 我想访问我的帐户可以访问的所有日历,尤其是出现在我的 Office 365 界面的“其他日历”部分中的会议室日历。

目前,如果我查询“https://outlook.office365.com/api/v1.0/me/calendars”端点,我只得到我拥有的日历,而不是会议室日历。

关于如何获取它们的任何线索(通过 Office 365 REST API)?

【问题讨论】:

    标签: api rest calendar office365 shared


    【解决方案1】:

    REST API 不支持在以用户身份登录时访问其他用户的日历。您可以使用client credentials model 授予应用访问组织中所有日历的权限,并以这种方式访问​​它们。

    【讨论】:

    【解决方案2】:

    通过使用以下端点,我已经能够完成我相信您所询问的事情(使用 office 365 API 从与您的 Outlook 日历共享的日历中获取事件):

    .../api/v2.0/Users('PRIMARY_USER_ID')/Calendars('SHARED_CALENDAR_ID')/Events
    

    我不确定此端点是否可以让您访问您有部分访问权限的端点,但您应该能够从与您的 Outlook/Office 365 帐户直接共享的任何日历中获取事件/信息。

    • 当您第一次使用 Outlook 帐户登录并通过 Microsoft 的身份验证过程时,PRIMARY_USER_ID(我在这里称之为)作为响应对象的一部分返回给您。这不是您尝试访问的日历的 ID,而是与其他日历共享的主日历(您可以在 api/v2.0/me 端点找到的那个)的想法。我见过的所有 ID 都以一堆用破折号分隔的字母和数字的形式返回。

    • CALENDAR_ID 是您尝试从中获取事件的共享日历的 ID。如果您向.../api/v2.0/me/calendars/ 发出请求,您可以查看每个共享日历的这些 ID。这将返回与您共享的每个日历、有关所有者的信息以及该日历的“ID”。

    如果您插入这些 id,并向上面的 url 发出请求,您应该能够从 API 获取日历事件。

    【讨论】:

    • 对于那些使用 Microsoft Graph API v1.0,它是https://graph.microsoft.com/v1.0/users/me/calendars/{calendar_id}/events
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多