Microsoft图形无法访问的SkipToken方法

时间:2019-09-10 09:06:05

标签: c# microsoft-graph

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

我已经安装了1.17.0微软图形版本(发布数据:2019年8月16日,星期五(8/16/2019))。

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

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

从“事件”中获得了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->是从events.AdditionalData [“ @ odata.nextLink”]

中提取的代码。

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

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

1 个答案:

答案 0 :(得分:0)

您可以通过传递如下的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();