我正在尝试在用户的Gmail帐户中发送现有草稿。我们通过线程ID识别要发送的草稿,因此在发送时,我们会在用户的帐户中获取完整的草稿列表,并发送与线程ID匹配的所有草稿。
List<Draft> drafts = GmailAPIHelper.getDraftsAll(sender);
for (Draft d : drafts) {
Message m = (Message) d.get("message");
if (m.getThreadId().equals(draftId)) {
try {
GmailAPIHelper.sendDraft(d, sender);
}
catch (GoogleJsonResponseException e) {
if (e.getStatusCode() == 404) {
Logger.log("404 on draft send");
Logger.log(e.getMessage());
}
}
}
}
public static Message sendDraft(Draft d, User u) throws IOException, NoOauthCredentialsException {
Gmail g = GmailAPIHelper.getGmailService(u);
Gmail.Users.Drafts.Send draftSendRequest = g.users().drafts().send("me", d);
Message m = executeAndLog(draftSendRequest, u);
return m;
}
这几乎一直都有效。但是,当我们尝试发送草稿时,有时会收到404响应代码和以下错误消息:
{
"code" : 404,
"errors" : [ {
"domain" : "global",
"message" : "Not Found",
"reason" : "notFound"
} ],
"message" : "Not Found"
}
我们只发送我们能够在用户帐户中找到的草稿,我们可以在收到错误后找到草稿 - 我们怎样才能收到“未找到”错误?