Javascript 使用node.js Gmail API发送现有草稿

Javascript 使用node.js Gmail API发送现有草稿,javascript,node.js,google-api,gmail-api,Javascript,Node.js,Google Api,Gmail Api,我正试图使用API发送一份已经存在的Gmail草稿。尽管进行了大量搜索,但我仍然无法找到关于请求实际外观的大量具体信息。我尝试过的请求有: gmail.users.drafts.send( { 'userId': user, 'resource': { 'id': msg_id } }, callback ); 这将导致“找不到”错误 基于一些似乎暗示需要位于名为draft的子对象中的搜索,我尝试: gmail.users.drafts.send( { 'userId': user, 'res

我正试图使用API发送一份已经存在的Gmail草稿。尽管进行了大量搜索,但我仍然无法找到关于请求实际外观的大量具体信息。我尝试过的请求有:

gmail.users.drafts.send( { 'userId': user, 'resource': { 'id': msg_id } }, callback );
这将导致“找不到”错误

基于一些似乎暗示需要位于名为
draft
的子对象中的搜索,我尝试:

gmail.users.drafts.send( { 'userId': user, 'resource': { 'draft': { 'id': msg_id } } }, callback );
这将导致“无效草稿”错误。我认为这是一个更好的错误,但我仍然无法让它真正发送


我已经确认消息ID和用户ID字符串是正确的,并且没有任何身份验证问题。(其他API调用工作正常。)

您的第一个示例是正确的,但我认为您遗漏了一些东西

我有一张汇票。我会:

请求

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

在所有internet中搜索后,我找到了一个解决方案:

gmail.users.drafts.send({ 
    auth: access_token,
    userId: 'me', 
    resource: {
      id: draft_id,
      message:{
        raw: base64encodedmessage
      }
    }
  }, callback);

即使你想发送一份带有新正文的草稿,这也行

啊,我没意识到草稿ID和消息ID是不同的!我来试试看。@friedo Sweet!没问题:)你能发布最终解决方案吗?