0

我正在使用 Outlook REST API v2.0,并按照文档中的说明进行操作:https ://msdn.microsoft.com/en-us/office/office365/api/mail-rest-operations#synchronize-messages

一切正常,我发送Prefer: odata.track-change带有初始和“delta”请求的标头,接收Preference-Applied: odata.track-changes初始响应(不是带有“delta”或“skip”响应),nextLink当仍有消息要同步时接收,但是当回合结束时,文档说我应该收到deltaLink,我可以在接下来的几轮中使用,但我没有收到。

在这里,我打印请求 url、接收到的消息计数和解析的 json 响应的键:

<<<< init url: https://outlook.office.com/api/v2.0/users/UserX@myorg.onmicrosoft.com/MailFolders/Inbox/messages
>> init messages: 100
>> init keys: [u'@odata.deltaLink', u'@odata.context', u'value']

<<<<<<< https://outlook.office.com/api/v2.0/users/UserX@myorg.onmicrosoft.com/MailFolders/Inbox/messages/?%24deltatoken=x6ACBKs7JAHtb4FNhCplyPMw9QUAAGlsP20BAAAA
>> messages: 100
>> response keys: [u'@odata.nextLink', u'@odata.context', u'value']

<<<<<<< https://outlook.office.com/api/v2.0/users/UserX@myorg.onmicrosoft.com/MailFolders/Inbox/messages/?%24skipToken=x6ACAqs7JAHtb4FNhCplyPMw9QUAAGlsP20CAAAA
>> messages: 100
>> response keys: [u'@odata.nextLink', u'@odata.context', u'value']

<<<<<<< https://outlook.office.com/api/v2.0/users/UserX@myorg.onmicrosoft.com/MailFolders/Inbox/messages/?%24skipToken=x6ACAqs7JAHtb4FNhCplyPMw9QUAAGlsP20DAAAA
>> messages: 100
>> response keys: [u'@odata.nextLink', u'@odata.context', u'value']

<<<<<<< https://outlook.office.com/api/v2.0/users/UserX@myorg.onmicrosoft.com/MailFolders/Inbox/messages/?%24skipToken=x6ACAqs7JAHtb4FNhCplyPMw9QUAAGlsP20EAAAA
>> messages: 93
>> response keys: [u'@odata.context', u'value']

如您所见,我也使用x-AnchorMailbox模拟,但没有明确禁止。

那么,是我做错了什么,还是这个 API 坏了?

4

1 回答 1

0

事实证明,尽管文本和示例中的文档说您不发送Prefer: odata.track-changes带有skipToken请求的标头,但您必须这样做才能接收“deltaToken”。

在此处输入图像描述

于 2017-07-13T16:29:12.323 回答