我正在通过gmail API获取消息以获取完整消息:
Message msgfull = _gmailService.Users.Messages.Get("me", msg.Id).Execute();
我传递了有效的msg.Id
Google.GoogleApiException:' Google.Apis.Requests.RequestError
未找到[404]
未找到Google.Apis.Requests.RequestError [404]错误[ 消息[未找到]位置[ - ]原因[notFound]域[全局]]
还有这个问题here
有人遇到过这个吗?
答案 0 :(得分:0)
这是"按设计"根据文档,历史ID按时间顺序增加,但与有效ID之间的随机间隙不相邻。
这不是API中的错误,并记录在 https://developers.google.com/gmail/api/v1/reference/users/history/list
查看更多here
所以,如果您正在执行以下步骤:
一种可能的解决方案是仅通过调用users.messages.list(" me")来获取消息的消息ID,而不是依赖于历史记录查询。
无论如何,这看起来像是Google API方面的一个错误,导致用户无法依赖过去1周以上的历史记录结果。
更多信息:返回指定的startHistoryId之后的历史记录。 提供的startHistoryId应该从a的historyId获得 消息,线程或以前的列表响应。历史ID增加 按时间顺序但不与其间的随机间隙相邻 有效身份证件提供无效或过期的startHistoryId 通常返回HTTP 404错误代码。历史记录通常是 有效期至少一周,但在某些罕见情况下可能有效 只有几个小时。如果您收到HTTP 404错误响应,则表示您的错误 应用程序应执行完全同步。如果你没有收到 响应中的nextPageToken,没有要检索的更新和 您可以将返回的historyId存储为将来的请求。