Gmail api 调用 message.get 时返回 404 错误

KSz*_*eto 5 gmail-api

Gmail API History.list 返回的 messageId 在调用 message.get 时返回 404。

我使用“INBOX”标签和“history/messagesAdded”字段调用history.list。然后,我调用 message.get 并返回每个 messageId。其中一些返回有效消息,另一些返回以下异常:

Google_Service_Exception
{
   "error": {
   "errors": [
   {
     "domain": "global",
     "reason": "notFound",
     "message": "Not Found"
    }
   ],
  "code": 404,
  "message": "Not Found"
 }
}
Run Code Online (Sandbox Code Playgroud)

什么会导致这种情况呢?看来我们刚刚检索了 messageId,现在没有足够的时间将它们永久删除。

Ali*_*son 2

正如评论中所解释的,如果消息被删除,就会发生这种情况。这可以在gmail 的 History.list返回的messagesDeleted数组中进行检查,只需确保发送适当的内容(或根本不发送任何内容)。historyTypes

{
 "history": [
  {
   "id": "69014",
   "messagesAdded": [
    {
     "message": {
      "id": "165a2cd1a5b308b9",
      "threadId": "1659e85b88e80e7b",
     }
    }
   ]
  },
  {
   "id": "69024",
   "messagesDeleted": [
    {
     "message": {
      "id": "165a2cd1a5b308b9",
      "threadId": "1659e85b88e80e7b",
     }
    }
   ]
  }
}
Run Code Online (Sandbox Code Playgroud)