首页 > 解决方案 > 使用图形 api 获取已删除的事件数据

问题描述

我已经使用图形 api 订阅了房间日历,并订阅了所有事件,如 Create、Update 和 Delete。

在我的场景中,当用户在房间 abc@onmicrosoft.com 上方邀请然后取消原始会议然后取消事件在房间日历中被触发。发生了两件事

  1. 我没有收到删除通知,而是收到更新通知。现在,假设这种行为是由于事件已移动到不同的文件夹,我假设在这种情况下是已删除的项目,因此它被通知为更新。有人可以确认它是正确的行为还是错误?

  2. 当上述事件发生时,我得到的通知响应中的 id 在事件被取消之前是相同的 id,尝试使用上面的 id 使用上面的房间 abc@onmicrosoft.com 的图形 api 搜索事件。

    var Evt = await graphServiceClient.Users[resourceId].Events[itemid] .Request() .GetAsync();

但在这里我收到ErrorItemNotFound错误。我假设这是由于这个事件现在已经移动并且它的 id 现在已经改变了。所以似乎通知发送的 id 在这里没有用,因为没有找到任何可以搜索已删除事件的 api。

我的主要目的是以某种方式获取上述事件的 icaluid,但由于我们无法使用上述通知给出的 id 来搜索它。

我尝试了其他帖子中建议的各种方法,例如在 delteditems 文件夹中搜索,但这也没有提供我正在寻找的 icaluid 信息信息。

    var myevents = await graphServiceClient.Users[resourceId].MailFolders.DeletedItems.Messages
                         .Request()                                
                         .GetAsync();
                            events = myevents;

并尝试对其进行扩展以提供特定于通风口的数据

    var myevents = await graphServiceClient.Users[resourceId].MailFolders.DeletedItems.Messages
                         .Request()
                         .Expand("eventMessage/event")
                         .GetAsync();
                        

但这给出了一个错误说

System.AggregateException: One or more errors occurred. (Code: BadRequest
Message: Parsing OData Select and Expand failed: Could not find a property named 'eventMessage' on type 'microsoft.graph.message'

有谁知道是否可以获得特定的已删除事件数据,我搜索了各种帖子,似乎这仍然不支持操作。

让我知道是否可以使用任何可靠的技巧来获取数据。

标签: microsoft-graph-apimicrosoft-graph-mailmicrosoft-graph-calendar

解决方案


推荐阅读