Javascript 使用gmail api发送电子邮件错误:此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

我正在尝试使用gmail api发送电子邮件,我正在从用户和服务器读取数据 将其转换为
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,'-');同样的事情。你解决了这个问题吗?当我在参数中指定内容类型时,它仍然会给我一个错误。我用的是阿拉莫菲尔