我正在尝试使用Outlook Rest Api see doc here的测试版同步Outlook文件夹(比如收件箱)
我只需要检索属性 IsRead 和 PR_INTERNET_MESSAGE_ID
以下文档中,对于第一次同步,我的请求如下:
始终添加以下Http标头:
request.Headers.Add("Prefer", "odata.track-changes");
request.Headers.Add("Prefer", "odata.maxpagesize=5"); //Use a small page size easier for debugging
第一个初始完整同步请求
https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))
效果不错 value
数组包含我需要的内容。
第一个请求后的第二个请求使用 deltatoken
https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead,Subject&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))&$deltatoken=a758b90491954a61ad463ef3a0e690a2
结果不佳,没有SingleValueExtendedProperties条目
接下来要求使用 skiptoken ...
进行分页 https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead,Subject&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))&$skiptoken=e99ad10324464488b6b219ca5ed6be1c
结果不佳,与2相同。
对我来说这看起来像个错误。你能提供一个解决方法吗?从 ItemId 列表中可以轻松检索到相应 PR_InternetMessage_Id 的列表(不是每个项目的项目)?
另请注意,在文档中写道:
响应将包括Preference-Applied:odata.track-changes 头。如果您尝试同步不受支持的资源,请执行此操作 标题不会在响应中返回。检查此标题 在处理响应之前避免错误。
似乎对于2.和3.调用此响应标题" Preference-Applied"没有设定。
答案 0 :(得分:1)
今天的同步功能不支持扩展属性。但是,我们正在努力实现这一目标,并应在几周内开始工作。
修改强> 有关PR_INTERNETMESSAGE_ID特殊情况的解决方法,请查看下面的注释。