【发布时间】:2015-05-28 18:30:57
【问题描述】:
我正在尝试使用 gmail-api 发送电子邮件,我正在从用户和
将其转换为base64url 字符串
当我尝试使用 post 请求发送邮件时,我得到了原始值
var ss=new Buffer(message).toString('base64')
var rawdata = ss.replace(/\//g, '_').replace(/\+/g, '-');
var options={"access_token":google.accessToken,'raw':rawdata};
var res=HTTP.post('https://www.googleapis.com/gmail/v1/users/me/messages/send',{params: options});
报错
{ "error": { "errors": [
{ "domain": "global",
"reason": "parseError",
"message": "This API does not support parsing form-encoded input." } ],
"code": 400, "message": "This API does not support parsing form-encoded input." } }
我正在发送以下参数
var message = 'From: Me <ff@gmail.com>\r\n' +
'To: Me <ss@gmail.com>\r\n' +
'Subject: Hello\r\n'+
'Mime-Version: 1.0\r\n'+
'Content-Type: text/html; charset=utf-8\r\n' +
'Content-Transfer-Encoding: quoted-printable\r\n\r\n' +
'<html><body>' +
'<h1>World</h1>' +
'</body></html>';
我在我的应用中使用了有效的电子邮件,
重要的是当我将生成的 raw 粘贴到 gmail-api explorer 中时,
它工作正常并且电子邮件正在发送,但是当我使用相同的原始请求发送发布请求时,它会抛出错误。
编辑:访问令牌也可以,它们可以用于其他查询。
我的代码中的错误是什么?我想错误与标题有关。
任何帮助表示赞赏。
【问题讨论】:
-
检查原始数据值。我认为你必须像这样发送 replace(/\+/g, '-').replace(/\//g, '_');
-
同样的事情。你解决了这个问题吗?
标签: javascript node.js post google-api gmail-api