使用未经用户验证的Microsoft Graph和Daemon应用程序同步Microsoft日历

时间:2019-11-14 15:19:27

标签: outlook microsoft-graph

我想创建一个.NET Core守护程序应用程序,以便使用Microsoft Graph将所有用户的约会从应用程序同步到Outlook,反之亦然。

实际上,我已经按照以下指南创建了守护程序应用程序 Get access without a user,并且我已经测试了一些端点,例如

  • 将所有用户置于应用的租户下
  • 选择ID,应用租户下所有用户的userPrincipalName

,这些测试效果很好。现在,我想对日历进行一些测试,例如:

  • 给了应用程序租户下的一个用户(id | userPrincipalName),请检查[name]日历是否存在
  • 在应用程序的租户下给了一个用户(id | userPrincipalName),插入一个新日历
  • 在应用程序的租户下给了一个用户(id | userPrincipalName),选择他所有的约会

在这里,我在阅读此documentation about list calendar时遇到了问题,因为有关HTTP请求的示例说我可以使用以下网址创建请求

- http request: "GET /me/calendars"
- http request: "GET /users/{id | userPrincipalName}/calendars

相反,C#示例仅包含一个有关

的示例

- c# graph lib: "graphClient.Me.Calendars.Request() ... "

是否可以使用Microsoft.Graph C#库执行HTTP请求“ / users / {id | userPrincipalName}”?我正在浏览Microsoft Graph库,但实际上我没有发现实现先前测试的任何方法。

显然我不能使用 graphClient.Me.Calendars.Request()... ,因为我的graphClient在没有用户的情况下得到了认证

我必须使用Outlook REST API吗?

1 个答案:

答案 0 :(得分:1)

感谢Randy Slavey,我解决了我的问题。

使用{id |创建HTTP请求。使用Microsoft Graph C#库的userPrincipalName},您必须编写以下代码:

graphClient.Users["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"].Calendars