使用gmail api发送电子邮件错误:此API不支持解析表单编码输入

use*_*555 3 javascript post google-api node.js gmail-api

我正在尝试使用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});
Run Code Online (Sandbox Code Playgroud)

这是投掷错误

    {  "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."  } } 
Run Code Online (Sandbox Code Playgroud)

我发送以下参数

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>';
Run Code Online (Sandbox Code Playgroud)

我在我的应用中使用了有效的电子邮件,

重要的是当我粘贴生成raw的gmail-api 资源管理器时,

它工作正常,电子邮件正在发送,但当我发送相同的原始邮件请求时,它会抛出错误.

编辑:accesstokens也没关系,他们正在为其他查询工作.

我的代码中的错误是什么?我猜错误是标题.

任何帮助赞赏.

Tho*_*lle 5

我怀疑当你没有指定Content-Type-header时,它默认为application/x-www-form-urlencoded.尝试Content-Type自己设置application/json.