展望REST API同步消息:在过去的响应没有deltaLink
问题描述:
我使用的是Outlook REST API 2.0版,并按照指示从文档:https://msdn.microsoft.com/en-us/office/office365/api/mail-rest-operations#synchronize-messages展望REST API同步消息:在过去的响应没有deltaLink
一切顺利,我送Prefer: odata.track-change
头与初始和“增量”请求,收到Preference-Applied: odata.track-changes
与初始响应(不与“delta”或“跳过”响应),收到nextLink
虽然仍然有消息要同步,但回合结束时,文档说我应该收到deltaLink
,我可以使用下面几轮,但我没有收到它。
这里我打印请求的URL,收到的消息和解析的JSON响应的按键数:
<<<< init url: https://outlook.office.com/api/v2.0/users/[email protected]/MailFolders/Inbox/messages
>> init messages: 100
>> init keys: [u'@odata.deltaLink', u'@odata.context', u'value']
<<<<<<< https://outlook.office.com/api/v2.0/users/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/MailFolders/Inbox/messages/?%24skipToken=x6ACAqs7JAHtb4FNhCplyPMw9QUAAGlsP20EAAAA
>> messages: 93
>> response keys: [u'@odata.context', u'value']
正如你可以看到我也用x-AnchorMailbox
模拟,但它没有明确禁止。
那么,我做错了什么,或者这个API是坏的?
我刚测试过它,没有问题。要清楚,您是否在发送每个请求时都发送Prefer标头(带有odata.track-changes和odata.maxpagesize)? –
我发送'prefer:odata.track-changes'与“初始”和“delta”请求。我试着提供并跳过'maxpagesize' - 同样的行为。 – gistart
好吧,为所有请求添加'prefer:odata.track-changes',现在它可以工作。文档中的文本和示例都表示不需要'skipToken'请求,这是一个错误信息。 – gistart