问题标签 [microsoft-graph-calendar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
578 浏览

api - 如何使用 Microsoft Graph API 上的 POST 方法上的查询参数过滤响应?

我正在尝试在我的办公室内制作一个简单的房间预订应用程序。用户可以选择一个时间范围、查看可用房间并预订房间(在该房间的那个时间范围内在他们的日历中创建一个事件)。

为了查看可用的房间,我尝试使用 Microsoft Graph REST API,特别是 POST 方法 - getSchedule

getSchedule 的示例请求如下所示

我将办公室中的所有房间都放在日程表中,然后可以根据可用性视图在响应中查看它们的可用性。

但是,我不需要回复中提供的任何其他信息。我只想查看 scheduleId 和 availabilityView,因为响应需要永远加载调度请求中的许多房间。

我一直在寻找通过 POST 请求中的参数过滤响应的可用方法:https ://docs.microsoft.com/en-us/graph/query-parameters 。但是,我似乎应用于我的地址的任何过滤器似乎对响应没有任何影响。

我试过了

https://graph.microsoft.com/v1.0/me/calendar/getschedule?$select=availabilityView

对于请求和其他类似的变体没有任何成功。它们都返回完整的 JSON 响应。

0 投票
1 回答
599 浏览

microsoft-graph-api - 如何跨多个用户同步日历事件

如何使用 Microsoft Graph 在多个用户之间同步事件,例如,如果用户 A 和 B 都在同一个事件中,并且其中一个更新了事件,那么用户 A 和 B 中的事件也应该更改。

我可以使用 iCalUId 执行此操作吗?

0 投票
1 回答
85 浏览

c# - 如何使用 Graph API 按时间和位置获取 Office 365 日历事件?

当我为某个地点创建新活动时,我需要检查该地点是否繁忙,如果是,我需要向现有活动的创建者发送一封电子邮件,告知他们的活动将被重复预订。首先,我使用calendar/getSchedule API 调用来获取给定时间范围内位置(房间)的时间表。这让我返回了那个房间的忙碌时间数组,但没有给我任何关于实际事件或事件创建者的额外信息。

知道事件的关联框架和位置(例如,作战室下午 2-3 点)我如何使用 Graph API(REST 或 .NET SDK)检索该特定事件?

0 投票
1 回答
448 浏览

microsoft-graph-api - Microsoft Graph findMeetingTimes - 401 UnknownError

我在 Azure Active Directory 中注册了一个应用程序以findMeetingTimes从 Microsoft Graph 调用。我能够成功授权、获取令牌并进行其他 Graph API 调用,但会收到一个401 - Unauthorized response错误代码为“UnknownError”的端点https://graph.microsoft.com/v1.0/me/findMeetingTimes

我正在使用 Microsoft 工作帐户进行这些活动,并且可以使用该帐户登录并查看日历。我尝试了其他与日历相关的 API 调用,包括/me/calendar/getSchedule/me/events收到了成功的响应。我主要使用 Postman 进行测试,但尝试使用 Graph Explorer 并得到相同的响应。

我还检查了我使用的令牌是否包含正确的范围Calendars.Read.SharedCalendars.ReadWrite.Shared. 我最初尝试仅使用 的范围Calendars.Read.Shared,但无济于事。

这是我在请求令牌时收到的响应:

我提出的请求(主体为空,因为所有主体参数都是可选的):

我收到的 401 响应:

是否有任何其他配置可以更改以解决此问题?

0 投票
1 回答
309 浏览

c# - 在 MSGraph Dot Net 中获取日历事件时忽略 QueryOptions

我正在尝试获取用户今天的日历事件。所以我添加了一些查询参数,但它们被忽略了,图形客户端返回用户的事件,就好像我没有提供任何参数(startatetime)一样:

我在图形资源管理器中对其进行了测试,它工作正常。但在 sdk 中,它返回今天之前开始的日历事件。

0 投票
1 回答
37 浏览

microsoft-graph-api - 以编程方式为用户创建只读日历项

我有以下业务需求:

  • 自动化流程需要在多个最终用户的 O365 日历中创建日历项目
  • 这些日历项目对于这些用户必须是只读的
  • 它们必须通过相同的自动化过程可读/可编辑/可删除

根据docs,您不能将日历项设为只读,但可以将日历设为只读。所以我想知道我是否:

  • 可以为每个合格的最终用户制作一个特定的日历
  • 使其对最终用户只读
  • 它将如何在他们的 Outlook/owa 中显示
0 投票
0 回答
138 浏览

microsoft-graph-api - 我可以避免在 o365 活动创建过程中向活动参与者发送电子邮件吗?

POST我的应用程序使用对图形 api 的请求来恢复用户日历事件/calendars/{ID}/events。如果用户想要与与会者一起恢复活动,我们通常不想向他们发送电子邮件邀请。

如何使用图形 API 实现这一目标?

如果无法通过graph API,是否有任何其他接口允许这样做?我看到了一些关于EWS基于 XML 的 API 的文档,似乎不发送电子邮件的选项在哪里:但我在图形 API 文档或 MAPI 属性列表( https://docs.microsoft.com/enSendMeetingInvitations)中找不到类似的东西-us/openspecs/exchange_server_protocols/ms-oxprops/f6ab1613-aefe-447d-a49c-18217230b148 )

有一次,我查看了一些 o365 备份解决方案,发现自己能够在不发送电子邮件的情况下恢复事件。它似乎使用了图形 API。

我尝试将与会者的手动状态设置为accepted事件有效负载中的所有其他可能类型:

0 投票
1 回答
265 浏览

node.js - Microsoft Graph API calendarView 增量端点未响应初始请求

向 calendarView API 发送第一个请求时,请求不返回或超时。这仅发生在某些请求上,并且似乎仅发生在第一个请求上(可能是因为第一个请求具有更大的响应大小)。

一个示例请求:

我找到的当前解决方案是将 odata.maxpagesize 减少到一个非常小的数字(目前 2 是适用于我测试过的所有日历的最高数字)。

使用 nodejs 客户端“@microsoft/microsoft-graph-client”发送请求:“1.7.0”。

这里最后一个 console.log 永远不会被调用。

预期的结果是请求返回,至少带有错误代码。我还希望 API 能够处理比每页 2 个更多的项目。

当前设置较小 maxpagesize 的解决方案暂时有效,但是,我预计还有另一个根本原因问题。

知道什么是错的,以及如何解决这个问题?

0 投票
0 回答
78 浏览

java - 如何使用 Microsoft graph 更新当前会议事件?(使用补丁方法)

我尝试使用 Microsoft graph android SDK 更新 Microsoft Outlook 会议。但这不能正常工作。下面的代码是我编写的示例代码。(让所有事件 API 正常工作。我需要知道如何使用补丁方法)

0 投票
2 回答
203 浏览

azure - 如何查询租户中所有用户日历的“公开 API”?

我希望能够 - 从 3 日的克罗恩工作开始。派对服务器 - 查询和修改我的租户(组织)日历中的所有用户 - 但我最终得到一个我不知道该怎么处理的“应用程序 ID URI”。

无论我如何查询 microsoft graph API,我都会得到“Invalid Audience”,而关于该主题的文档似乎并没有真正强调如何准确地指定正确的“audience”或“resource”实际上需要什么。

这些是我在 Azure Active Directory 门户中采取的步骤:

我使用客户端凭据授予流程,因此我可以使用 Cron 而不是通过用户访问。https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow

1) 在门户中注册了一个应用程序。所以我得到了一些身份证(这里匿名)

2)创建了一个秘密,因此我可以将其与应用程序 ID 一起提供以获取令牌。

3) 将“Api 应用程序权限”授予https://graph.microsoft.com/Calendars.ReadWrite

4)“公开一个 API”并将其范围称为“读写日历”,因此范围的应用程序 ID URI 最终为:api://51ed7b6d-d33e-491e-9d40-1/readwritecalendars

5) 使用步骤 1 中的应用程序(客户端)ID 将 API 授权给应用程序,因此我不需要管理员同意即可查询。

问题是现在我只得到了一个“应用程序 ID URI”,那么我该如何准确地查询我的日历呢?

我在这里使用https://github.com/TheNetworg/oauth2-azure

我能够成功获得令牌:

给我:

没有返回“Aud”或“Audience”字段。

这是我感到困惑的地方,我究竟如何形成一个链接,我怎么说我想用令牌查询所有日历?

查看它指定的 Outlook 图形文档,我需要像这样查询(https://docs.microsoft.com/en-us/graph/api/user-list-calendars?view=graph-rest-1.0&tabs=http) :

这对我来说真的没有意义,因为“我”似乎暗示着一个用户,我试图查询一个不与特定用户绑定的租户中的东西?

无论如何,如果我尝试像这样查询:

或者我刚刚得到的不同组合:

总而言之:我如何实际查询 API 以列出/修改日历,我必须点击的实际端点是什么?我在哪里放置实际查询?

提前致谢!

结果将是 JSON 对象而不是错误消息。成功返回查询。在这种情况下,所有用户日历的列表,或修改日历后的“成功更新”。