send email using gmail api Error: This API does not support parsing form-encoded input

send email using gmail api Error: This API does not support parsing form-encoded input

我正在尝试使用 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,

它工作正常并且正在发送电子邮件,但是当我使用相同的原始文件发送 post 请求时它抛出错误。

编辑:accesstokens 也很好,它们可以用于其他查询。

我的代码有什么错误?我想错误出在 headers。

感谢任何帮助。

我怀疑当您不指定 Content-Type-header 时,它默认为 application/x-www-form-urlencoded。尝试将 Content-Type 自己设置为 application/json