【问题标题】:SkipToken method for microsoft-graph inaccessible无法访问 microsoft-graph 的 SkipToken 方法
【发布时间】:2020-01-12 00:19:27
【问题描述】:

我正在尝试使用 microsoft-graph 从 Outlook/office365 日历中获取一些事件。正如我从结果中注意到的,检索到的事件数为 200,但日历中的事件数更多。因此,根据来自https://docs.microsoft.com/en-us/graph/delta-query-events?tabs=csharp 的信息,我尝试批量获取事件,直到收到@odata.deltaLink 标签并告诉我停止,因为没有其他事件。这里的问题是我不能使用 SkipToken(...) 方法来知道我应该从什么时候接收剩余的事件。

我已经安装了 1.17.0 microsoft-graph 版本(发布数据:Friday, August 16, 2019 (8/16/2019))。

我使用以下代码检索第一批事件:

var events = await graphClient.Me.CalendarView.Delta()
                                   .Request(calendarInterval)
                                   .Header("Prefer", "odata.track-changes")
                                   .GetAsync();

从“events”我得到 events.AdditionalData["@odata.nextLink"] 以便将其用于新呼叫。

从 events.AdditionalData["@odata.nextLink"] 我得到了 skiptoken 代码,以便将其用于以下调用:

var delta = await graphClient.Me.CalendarView
    .Delta()
    .Request()
    .Header("Prefer","odata.track-changes")
    .SkipToken("R0usmci39OQxqJrxK4")
    .GetAsync();

R0usmci39OQxqJrxK4 -> 是从事件中提取的代码。AdditionalData["@odata.nextLink"]

这里最大的问题是我不能使用 SkipToken() 方法。 我有以下错误,我不知道为什么,因为它使用的是最新版本的 microsoft-graph。

错误:错误 CS1061“IEventDeltaRequest”不包含“SkipToken”的定义,并且找不到接受“IEventDeltaRequest”类型的第一个参数的可访问扩展方法“SkipToken”(您是否缺少 using 指令或程序集引用?)

【问题讨论】:

    标签: c# microsoft-graph-api


    【解决方案1】:

    你可以通过如下方式传入一个requestOption来达到同样的效果

    var queryOptions = new List<QueryOption>()
    {
        new QueryOption("$skiptoken", "R0usmci39OQxqJrxK4")
    };
    
    var delta = await graphClient.Me.CalendarView
        .Delta()
        .Request(queryOptions)
        .Header("Prefer","odata.track-changes")
        .GetAsync();
    
    

    【讨论】:

      猜你喜欢
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 2018-06-07
      相关资源
      最近更新 更多