使用gmail-api发送电子邮件错误:此api不支持解析表单编码的输入
send email using gmail api Error: This API does not support parsing form-encoded input
我正在尝试使用gmailapi发送电子邮件,我正在从用户和将其转换为base64url
字符串
我得到了原始值,当我尝试使用后请求发送邮件时
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、中时
它运行良好,电子邮件正在发送,但当我用相同的原始文件发送帖子请求时,它会抛出错误。
EDIT:accesstoken也很好,它们适用于其他查询。
我的代码中有什么错误?我想错误在于标头。
感谢您的帮助。
我怀疑,当您不指定Content-Type
-标头时,它默认为application/x-www-form-urlencoded
。尝试将Content-Type
自己设置为application/json
。
相关文章:
- 添加和删除隐藏字段数组中的值,而不提交表单
- 将不属于表单的HTML页面中的值传递给php页面
- return false不停止表单提交
- 如何在不提交表单的情况下使用jQuery.validate
- Jquery处理提交按钮's单击事件而不中断表单发布
- 创建按钮不调用表单内的任何操作
- 如何登'如果验证未通过,则不提交表单
- PhantomJS-在不提交表单的情况下上传文件
- 在同一个html页面中显示servlet响应而不隐藏表单
- 如何在不提交表单的情况下使用struts2提交标记作为按钮
- 在不带表单的选定标记中的最后7天
- 验证不带表单标记的Html 5输入
- 使用javascript上传不带表单的图像
- 如何不清除表单jQuery中禁用的输入
- 单击按钮时 Ajax,但不涉及表单
- 为什么浏览器会触发点击事件而不是表单提交
- 删除表,但不删除表单和文件 jQuery
- 如何在不提交表单的情况下将回车键转换为 Tab 键
- 在焦点处理程序中修改表单时不触发表单提交
- AngularJS不保留表单中复选框列表中的选定项