如何使用新的Gmail REST API成功发送消息? [英] How to send a message successfully using the new Gmail REST API?
问题描述
我目前正在测试新的我发现,完整的消息需要在 raw
参数,请参阅示例:
来自:John Doe< jdoe @ machine。例>
致:Mary Smith< mary@example.net>
主题:说声Hello
日期:1997年11月21日星期五09:55:06 -0600
Message-ID:< 1234@local.machine.example>
这是一条消息,只是为了打招呼。所以,你好。
因此,在完成base64编码后,将它传递给 编辑1: 因此,要将base64 alpha转换为web安全格式,请按照以下步骤更改 仅转换 编辑2: 第一个Base64编码完整的信息(见上文)使用在线编码器,您将获得以下字符串: 现在将 现在在 I'm currently trying to test the new Gmail REST API. In the API Explorer it is possible to authorize requests using OAuth 2.0 and to execute a request, i.e. send a message. First I authorized.
I'm using the following test data (and of course I used a valid I also get a However, the mail will not be sent successfully and I can find an message from Questions: EDIT: There are 2 different HTTP request methods, got it! after reading the RFC 2822 specification I found out, that the complete message needs to be passed in the So after base64 encoding the complete message, passing it in the Edit 1: So to convert the base64 alpha into a format that is "web-safe" the
following changes are recommended:
To only convert Edit 2: First Base64 encode the complete message (see above) using an online encoder and you get this string: Now convert Now pass this in the 这篇关于如何使用新的Gmail REST API成功发送消息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! raw
参数而不使用任何其他参数,它工作正常。
正如@Amit提到的,它必须是 web安全的base64 编码,另请参阅 https://code.google.com/p/stringencoders/wiki/ WebSafeBase64
建议:
+ - > - (char 62,加上破折号)
/ - > _(char 63,斜线至下划线)
= - > *填充
+
至 -
和 /
至 _
对我来说是足够的。
这里回答@Hjulle的问题:只需要 userId
并在请求正文中使用 raw
参数。假设您的电子邮件地址是 jdoe@machine.example
'pre> RnJvbTogSm9obiBEb2UgPGpkb2VAbWFjaGluZS5leGFtcGxlPiAKVG86IE1hcnkgU21pdGggPG1h
cnlAZXhhbXBsZS5uZXQ + IApTdWJqZWN0OiBTYXlpbmcgSGVsbG8gCkRhdGU6IEZyaSwgMjEgTm92
IDE5OTcgMDk6NTU6MDYgLTA2MDAgCk1lc3NhZ2UtSUQ6IDwxMjM0QGxvY2FsLm1hY2hpbmUuZXhh
bXBsZT4KClRoaXMgaXMgYSBtZXNzYWdlIGp1c3QgdG8gc2F5IGhlbGxvLiBTbywgIkhlbGxvIi4 =
+
转换为 -
和 /
至 _
并且您得到
RnJvbTogSm9obiBEb2UgPGpkb2VAbWFjaGluZS5leGFtcGxlPiAKVG86IE1hcnkgU21pdGggPG1h
cnlAZXhhbXBsZS5uZXQ-IApTdWJqZWN0OiBTYXlpbmcgSGVsbG8gCkRhdGU6IEZyaSwgMjEgTm92
IDE5OTcgMDk6NTU6MDYgLTA2MDAgCk1lc3NhZ2UtSUQ6IDwxMjM0QGxvY2FsLm1hY2hp bmUuZXhh
bXBsZT4KClRoaXMgaXMgYSBtZXNzYWdlIGp1c3QgdG8gc2F5IGhlbGxvLiBTbywgIkhlbGxvIi4 =
raw
API Explorer的参数。
to
email address):{
"raw": "c2VuZGluZyBhIG1haWwgdXNpbmcgR21haWwgUkVTVCBBUEk=",
"payload": {
"headers": [
{ "name": "to", "value": "info@something.com" },
{ "name": "from", "value": "taifunbaer@gmail.com" },
{ "name": "subject", "value": "Test Gmail REST API" }
],
"mimeType": "text/plain"
}
}
200 OK
and the following result back, which looks fine.{
"id": "146dee391881b35b",
"threadId": "146dee391881b35b",
}
nobody@gmail.com
in the inbox instead;: "An error occurred, your message has not been sent."
1. Did someone test this successfully?
2. Do I have to add some other parameter to get this running?
The API Explorer currently supports metadata requests only
, which means plain-text messages without attachment, and this is what I'm trying to do.raw
parameter, see the example:From: John Doe <jdoe@machine.example>
To: Mary Smith <mary@example.net>
Subject: Saying Hello
Date: Fri, 21 Nov 1997 09:55:06 -0600
Message-ID: <1234@local.machine.example>
This is a message just to say hello. So, "Hello".
raw
parameter without using any other parameter, it works fine.
As @Amit mentioned, it must be web-safe base64 encoded, see also https://code.google.com/p/stringencoders/wiki/WebSafeBase64
+ --> - (char 62, plus to dash)
/ --> _ (char 63, slash to underscore)
= --> * padding
+
to -
and /
to _
was sufficient for me.
To answer the question of @Hjulle here an example: you only need the userId
and in the request body the raw
parameter. Let's assume, your email address is jdoe@machine.example
RnJvbTogSm9obiBEb2UgPGpkb2VAbWFjaGluZS5leGFtcGxlPiAKVG86IE1hcnkgU21pdGggPG1h
cnlAZXhhbXBsZS5uZXQ+IApTdWJqZWN0OiBTYXlpbmcgSGVsbG8gCkRhdGU6IEZyaSwgMjEgTm92
IDE5OTcgMDk6NTU6MDYgLTA2MDAgCk1lc3NhZ2UtSUQ6IDwxMjM0QGxvY2FsLm1hY2hpbmUuZXhh
bXBsZT4KClRoaXMgaXMgYSBtZXNzYWdlIGp1c3QgdG8gc2F5IGhlbGxvLiBTbywgIkhlbGxvIi4=
+
to -
and /
to _
and you getRnJvbTogSm9obiBEb2UgPGpkb2VAbWFjaGluZS5leGFtcGxlPiAKVG86IE1hcnkgU21pdGggPG1h
cnlAZXhhbXBsZS5uZXQ-IApTdWJqZWN0OiBTYXlpbmcgSGVsbG8gCkRhdGU6IEZyaSwgMjEgTm92
IDE5OTcgMDk6NTU6MDYgLTA2MDAgCk1lc3NhZ2UtSUQ6IDwxMjM0QGxvY2FsLm1hY2hpbmUuZXhh
bXBsZT4KClRoaXMgaXMgYSBtZXNzYWdlIGp1c3QgdG8gc2F5IGhlbGxvLiBTbywgIkhlbGxvIi4=
raw
parameter of the API Explorer.