Javascript 使用gmail api发送电子邮件错误:此api不支持解析表单编码输入
我正在尝试使用gmail api发送电子邮件,我正在从用户和服务器读取数据 将其转换为Javascript 使用gmail api发送电子邮件错误:此api不支持解析表单编码输入,javascript,node.js,post,google-api,gmail-api,Javascript,Node.js,Post,Google Api,Gmail Api,我正在尝试使用gmail api发送电子邮件,我正在从用户和服务器读取数据 将其转换为base64urlstring 当我尝试使用post请求发送邮件时,我得到了原始值 var ss=new Buffer(message).toString('base64') var rawdata = ss.replace(/\//g, '_').replace(/\+/g, '-'); var options={"access_token":google.accessToken,'raw':rawda
base64url
string
当我尝试使用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>';
var message='From:Me\r\n'+
'收件人:我\r\n'+
'主题:你好\r\n'+
'Mime版本:1.0\r\n'+
'内容类型:文本/html;字符集=utf-8\r\n'+
'内容传输编码:带引号的可打印\r\n\r\n'+
'' +
“世界”+
'';
我正在我的应用程序中使用有效电子邮件
重要的是当我将生成的raw
粘贴到gmail api中时
它工作正常,电子邮件正在发送,但当我用相同的原始数据发送post请求时,它抛出了错误
编辑:AccessToken也很好,它们用于其他查询
我的代码中的错误是什么?我想错误是带有标题的
非常感谢您的帮助。我怀疑,如果您不指定
内容类型
-标题,它默认为应用程序/x-www-form-urlencoded
。尝试将内容类型设置为application/json
检查原始数据值。我认为您必须发送类似replace(//\+/g,'-')。replace(//\//g,'-');同样的事情。你解决了这个问题吗?当我在参数中指定内容类型时,它仍然会给我一个错误。我用的是阿拉莫菲尔