使用 node.js Gmail API 发送现有草稿
Sending existing draft with node.js Gmail API
我正在尝试使用 users.drafts.send
API 发送已存在的 Gmail 草稿。尽管进行了大量搜索,但我一直无法找到很多关于请求实际应该是什么样子的具体信息。我尝试过的请求是:
gmail.users.drafts.send( { 'userId': user, 'resource': { 'id': msg_id } }, callback );
这会导致 'Not Found' 错误。
根据一些似乎暗示 draft resource 需要在名为 draft
的子对象中的搜索,我尝试了:
gmail.users.drafts.send( { 'userId': user, 'resource': { 'draft': { 'id': msg_id } } }, callback );
这会导致 "Invalid Draft" 错误。我想这是一个 更好的 错误,但我仍然无法真正发送它。
我已经确认消息 ID 和用户 ID 字符串是正确的,并且没有任何身份验证问题。 (其他 API 调用工作正常。)
你的第一个例子是正确的,但我认为你遗漏了什么。
我有草稿。我会 list it with the API Explorer:
请求
GET https://www.googleapis.com/gmail/v1/users/me/drafts?access_token={ACCESS_TOKEN}
回应
{
"drafts": [
{
"id": "1527269226973690353",
"message": {
"id": "1531f3452626f9f1",
"threadId": "1531f3452626f9f1"
}
}
],
"resultSizeEstimate": 1
}
如您所见,草稿有两个id。一个常规 messageId
在执行草稿特定操作时不起作用,而 id
是您应该使用的 draftId
。
在网上搜索后找到了解决方案:
gmail.users.drafts.send({
auth: access_token,
userId: 'me',
resource: {
id: draft_id,
message:{
raw: base64encodedmessage
}
}
}, callback);
即使您想发送带有新正文的草稿,这也有效
我正在尝试使用 users.drafts.send
API 发送已存在的 Gmail 草稿。尽管进行了大量搜索,但我一直无法找到很多关于请求实际应该是什么样子的具体信息。我尝试过的请求是:
gmail.users.drafts.send( { 'userId': user, 'resource': { 'id': msg_id } }, callback );
这会导致 'Not Found' 错误。
根据一些似乎暗示 draft resource 需要在名为 draft
的子对象中的搜索,我尝试了:
gmail.users.drafts.send( { 'userId': user, 'resource': { 'draft': { 'id': msg_id } } }, callback );
这会导致 "Invalid Draft" 错误。我想这是一个 更好的 错误,但我仍然无法真正发送它。
我已经确认消息 ID 和用户 ID 字符串是正确的,并且没有任何身份验证问题。 (其他 API 调用工作正常。)
你的第一个例子是正确的,但我认为你遗漏了什么。
我有草稿。我会 list it with the API Explorer:
请求
GET https://www.googleapis.com/gmail/v1/users/me/drafts?access_token={ACCESS_TOKEN}
回应
{
"drafts": [
{
"id": "1527269226973690353",
"message": {
"id": "1531f3452626f9f1",
"threadId": "1531f3452626f9f1"
}
}
],
"resultSizeEstimate": 1
}
如您所见,草稿有两个id。一个常规 messageId
在执行草稿特定操作时不起作用,而 id
是您应该使用的 draftId
。
在网上搜索后找到了解决方案:
gmail.users.drafts.send({
auth: access_token,
userId: 'me',
resource: {
id: draft_id,
message:{
raw: base64encodedmessage
}
}
}, callback);
即使您想发送带有新正文的草稿,这也有效