Outlook 如何访问与我共享的所有日历?

Outlook 如何访问与我共享的所有日历?,outlook,calendar,microsoft-graph-api,Outlook,Calendar,Microsoft Graph Api,我正在构建一个应用程序,供用户通过多个提供商访问其日历。我使用Graph API与Office 365进行了集成。 我当前使用委派权限和/me/calendars端点来获取数据 这适用于在outlook中创建的个人日历,但不适用于共享日历和外部日历。我的目标是,用户在本机outlook界面中看到的日历(和事件)与用户在我的应用程序中看到的日历(和事件)相同 据我所知,以下是在Microsoft生态系统中共享日历的各种方式: 显式用户共享 权限:Calendar.Read 如果所有者与另一个用户

我正在构建一个应用程序,供用户通过多个提供商访问其日历。我使用Graph API与Office 365进行了集成。 我当前使用委派权限和
/me/calendars
端点来获取数据

这适用于在outlook中创建的个人日历,但不适用于共享日历和外部日历。我的目标是,用户在本机outlook界面中看到的日历(和事件)与用户在我的应用程序中看到的日历(和事件)相同

据我所知,以下是在Microsoft生态系统中共享日历的各种方式:

  • 显式用户共享
    • 权限:
      Calendar.Read
    • 如果所有者与另一个用户明确共享日历,它将出现在
      /me/calendars
    • 这对我来说是完美的,但大多数用户不会这么做
  • 隐性组织份额
    • 权限:
      Calendar.Read
    • 默认情况下,组织的所有成员都可以看到其他成员的忙/闲状态。用户通过outlook中的“从目录添加”选项卡添加它们
    • 这允许我们使用用户列表查询
      /me/calendar/getschedule
      ,以获取一些事件
    • 这是有问题的,因为我不知道我的用户在outlook中“跟随”了哪些成员
  • 明确的组织份额
    • 权限:
      Calendar.Read.Shared
    • 如果所有者将共享更改为
      可以查看所有详细信息
      ,则我们可以访问
      /users/{USER\u ID}/calendars
    • 这又是一个问题,因为我不知道我的用户在outlook中“跟随”了哪些成员,需要其他成员手动操作
  • 团体日历
    • 权限:
      Group.Read.All
    • 这允许访问
      /group/{group\u ID}/calendar
    • 这又是一个问题,因为我不知道我的用户在outlook中“遵循”了哪些组
  • 外部日历
    • 不知道如何访问它们,它们不会出现在
      /me/calendars
  • 所以我的问题是:我是否错过了允许所有这些不同日历显示在一个统一API调用中的东西(最好是在
    /me/calendars
    中)?否则,是否可以知道我的用户在outlook上“遵循”哪些日历

    在一天结束时,我的用户并不关心如何在outlook上与他们共享日历,但如果我的应用程序中没有显示一个日历(例如在
    人民日历
    组中),他们会抱怨。关于共享日历的文档非常缺乏,我查看了所有其他SO帖子,运气不好


    非常感谢

    好的,给你。您可以从这两个Microsoft文档开始,这两个文档详细介绍了如何访问共享邮箱、您需要的权限等-!!例如,我以Megan的身份登录,直接从Alex的邮箱获取Alex与Megan共享的主日历中的所有事件,然后我将进行Graph API调用-“获取{Alex userId | Alex userPrincipalName}/calendar/events”。成功完成后,您将直接从Alex的邮箱获得HTTP 200 OK和Alex主日历中的事件实例集合。如果Alex未与Megan共享或委派其主日历,则在前面的GET操作中指定Alex的用户ID或用户主体名称将返回错误。我已经知道此共享,但充其量只是不完整的。似乎不可能像outlook那样对我的日历有一个统一的看法,我不确定是什么思想过程导致了这个决定。特别是当你将其与谷歌进行比较时,你在日历中看到的就是你在api中得到的。如果你谈论api透视图,它肯定会将你所寻找的数据拉过来,并完成它的工作,甚至是复杂的共享日历场景。如果你对微软提出改进建议的建议,可以自由地提出微软用户语音——这样他们就可以考虑实施它。这是我能找到的最接近的用户语音-。你可能想在这里增加你的新功能请求。酷,有趣的视图。正如我上面所说的,如果您希望了解更多信息或Microsoft在中实现,您可以提交一个文档错误或文件uservoice以获取更多示例(如上所述),并查看他们是否能够执行相同的操作。好的,给您。您可以从这两个Microsoft文档开始,这两个文档详细介绍了如何访问共享邮箱、您需要的权限等-!!例如,我以Megan的身份登录,直接从Alex的邮箱获取Alex与Megan共享的主日历中的所有事件,然后我将进行Graph API调用-“获取{Alex userId | Alex userPrincipalName}/calendar/events”。成功完成后,您将直接从Alex的邮箱获得HTTP 200 OK和Alex主日历中的事件实例集合。如果Alex未与Megan共享或委派其主日历,则在前面的GET操作中指定Alex的用户ID或用户主体名称将返回错误。我已经知道此共享,但充其量只是不完整的。似乎不可能像outlook那样对我的日历有一个统一的看法,我不确定是什么思想过程导致了这个决定。特别是当你将其与谷歌进行比较时,你在日历中看到的就是你在api中得到的。如果你谈论api透视图,它肯定会将你所寻找的数据拉过来,并完成它的工作,甚至是复杂的共享日历场景。如果你对微软提出改进建议的建议,可以自由地提出微软用户语音——这样他们就可以考虑实施它。这是我能找到的最接近的用户语音-。你可能想在这里增加你的新功能请求。酷,