Google api Gmail API不使用Base64编码发送消息

Google api Gmail API不使用Base64编码发送消息,google-api,gmail,gmail-api,Google Api,Gmail,Gmail Api,我正在使用此界面: 我正在测试来自网站表单的API请求。它需要原始Base64编码字符串,例如: TUlNRS1WZXJzaW9uOiAxLjANClJlY2VpdmVkOiBieSAxMC4xOTQuNjguMjI3IHdpdGggSFRUUDsgV2VkLCAyNCBBdWcgMjAxNiAwMjo1OToxNyAtMDcwMCAoUERUKQ0KRGF0ZTogV2VkLCAyNCBBdWcgMjAxNiAxMTo1OToxNyArMDIwMA0KRGVsaXZlcmVkLVRvOiBr

我正在使用此界面:

我正在测试来自网站表单的API请求。它需要原始Base64编码字符串,例如:

TUlNRS1WZXJzaW9uOiAxLjANClJlY2VpdmVkOiBieSAxMC4xOTQuNjguMjI3IHdpdGggSFRUUDsgV2VkLCAyNCBBdWcgMjAxNiAwMjo1OToxNyAtMDcwMCAoUERUKQ0KRGF0ZTogV2VkLCAyNCBBdWcgMjAxNiAxMTo1OToxNyArMDIwMA0KRGVsaXZlcmVkLVRvOiBrcnVub0B1bGl4dHJhdmVsLmNvbQ0KTWVzc2FnZS1JRDogPENBSzB5QmZZeEgwS1dGbng2TzNfZ3ZNRkxtVlB5RVY9NjdnQW5qRWdPaHIzSGZOTkJCUUBtYWlsLmdtYWlsLmNvbT4NClN1YmplY3Q6IFRoaXMgaXMgYSBzdWJqZWN0DQpGcm9tOiBLcnVub3NsYXYgVUxJWFRyYXZlbCA8a3J1bm9AdWxpeHRyYXZlbC5jb20-DQpUbzogS3J1bm9zbGF2IEJhbm92YWMgPGt1bm9rZGV2QGdtYWlsLmNvbT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0wNDdkN2JhZTQ5NjRhMmQ3MzAwNTNhY2U1NWUxDQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04DQoNClRoaXMgaXMgYSBib2R5DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgNCg0KPGRpdiBkaXI9Imx0ciI-VGhpcyBpcyBhIGJvZHk8YnI-PC9kaXY-DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMS0t

如何使用基本参数(如主题、发件人、收件人、邮件正文)发送邮件

如您所述,您首先使用
From
Subject
等标题构建消息,但在发送消息之前必须对消息进行编码。这是没有办法的

以下是使用JQuery的JavaScript示例:

// Base64-encode the mail and make it URL-safe 
// (replace all "+" with "-" and all "/" with "_")
var encodedMessage = btoa([
  "From: sender@gmail.com\r\n",
  "To: reciever@gmail.com\r\n",
  "Subject: Subject of the message\r\n\r\n",

  "This is the text of the message"
].join("")).replace(/\+/g, '-').replace(/\//g, '_');

$.ajax({
  method: "POST",
  url: "https://www.googleapis.com/gmail/v1/users/me/messages/send?access_token={access_token}",
  contentType: "application/json",
  data: JSON.stringify({           
    raw: encodedMessage
  })
});

但我不明白为什么我们需要替换这些字符?(
+
-
等…)这是一种称为url安全的base64编码形式。有时需要它,因为有些字符不能安全地传输。也许可以解释一下。我可以问你,当从终端执行Node.js时,是否使用了legit中的JavaScript代码示例,例如
Node script.js
?@Kunok是的,当然
gapi.client.gmail.users.messages.send
基本上负责上面的
access\u令牌。它很漂亮,但效果很好。我喜欢用Gmail scopes从中获得一个
访问\u令牌
,并像上面那样使用它。这对于测试来说更容易。是的,我正在尝试设置它,但我正在从PHP代码调用节点脚本,OAuth设置对我来说并不顺利,