似乎Gmail REST API中可能存在严重问题。
结果出乎意料。 Gmail REST API返回404 Not Found ..似乎返回的historyId未注册或有效。
在调用/ userId / profile时,startHistoryId有效,可以在/ userId / history / list调用中成功使用。
com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found
{
"code" : 404,
"errors" : [ {
"domain" : "global",
"message" : "Not Found",
"reason" : "notFound"
} ],
"message" : "Not Found"
}
答案 0 :(得分:6)
这不是API中的错误,并记录在 https://developers.google.com/gmail/api/v1/reference/users/history/list
具体而言“历史ID按时间顺序增加但与有效ID之间的随机间隔不连续。提供无效或过时的startHistoryId通常会返回HTTP 404错误代码.historyId通常至少有效一周,但是某些情况可能只有几个小时有效。如果收到HTTP 404错误响应,您的应用程序应执行完全同步。“
所以你可能只是使用了一个超出历史记录范围的historyId(它没有无限期存储,这将非常昂贵)。它的存储时间足以让客户同步(例如一周左右)。
如果您只需要从某个点向前同步,那么只需使用从getProfile返回的historyId。消息上的historyId是上次更新消息的时间,可能是几个月或几年前,比存储历史记录的时间长。