使用node.js Gmail API发送现有草稿
我正在尝试使用users.drafts.send
API发送已经存在的Gmail草稿。 尽pipe进行了大量的search,但我还是无法find有关请求实际外观的具体信息。 我试过的要求是:
gmail.users.drafts.send( { 'userId': user, 'resource': { 'id': msg_id } }, callback );
这会导致“未find”错误。
根据似乎暗示资源草案需要在一个名为draft
的子对象的search,我试着:
gmail.users.drafts.send( { 'userId': user, 'resource': { 'draft': { 'id': msg_id } } }, callback );
这会导致“草稿无效”错误。 我认为这是一个更好的错误,但我仍然无法实际发送。
我已经确认消息ID和用户IDstring是正确的,并且没有任何身份validation问题。 (其他API调用工作正常。)
你的第一个例子是正确的,但我认为你错过了一些东西。
我有一个草稿。 我将用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
。
在所有的互联网search后,我发现了一个解决scheme:
gmail.users.drafts.send({ auth: access_token, userId: 'me', resource: { id: draft_id, message:{ raw: base64encodedmessage } } }, callback);
即使您想发送新的正文草稿,这也可以工作