Gmail API通过Postman发送

时间:2018-08-29 08:42:12

标签: gmail postman gmail-api

我正在尝试使用POST方法通过gmail API和POSTMAN发送邮件

POST https://www.googleapis.com/upload/gmail/v1/users/example@gmail.com/messages/send

但是下面出现错误:

{
    "error": {
        "errors": [
            {
                "domain": "global",
                "reason": "invalidArgument"
                "message": "Recipient address required"
            }
        ],
        "code": 400,
        "message": "Recipient address required"
    }
}

标题已经放入内容类型:message / rfc822

我知道这必须被编码为base64(web_safe),所以我翻译了

"From: sender.example@gmail.com\r\n" +
"To: receiver.example@gmail.com\r\n" +
"Subject: Subject Example\r\n" +
"This is content: hope you got it\r\n"

我也将它们替换为web_safe

 replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); 

所以我得到了一个像下面的base64。 所以我把POST方法的正文放进去

{
    "raw": "RnJvbTogc2VuZGVyLmV4YW1wbGVAZ21haWwuY29tDQpUbzogcmVjZWl2ZXIuZXhhbXBsZUBnbWFpbC5jb20NClN1YmplY3Q6IFN1YmplY3QgRXhhbXBsZQ0KVGhpcyBpcyBjb250ZW50OiBob3BlIHlvdSBnb3QgaXQNCg"
}

我在Google开发人员的网站上使用了“尝试使用此api”,并且可以发送它。 https://developers.google.com/gmail/api/v1/reference/users/messages/send

但是对于POSTMAN,我不能。

请帮忙吗?

4 个答案:

答案 0 :(得分:1)

这意味着数据格式不正确。您应该尝试以下对我来说非常有用的方法。

我使用以下格式。

From: <FROM@gmail.com>
To: <TO@gmail.com>
Subject: Test Email

Test

出于测试目的,我使用https://ostermiller.org/calc/encode.html对上面的短信进行64位编码。所以我将得到如下编码的字符串

IEZyb206IDxGUk9NQGdtYWlsLmNvbT4KICAgIFRvOiA8VE9AZ21haWwuY29tPgogICAgU3ViamVjdDogVGVzdCBFbWFpbAogICAgCiAgICBUZXN0

现在是邮递员,

您必须使用https://www.googleapis.com/gmail/v1/users/<YOUR@gmail.com>/messages/send

的Gmail Rest API URL

内容类型应为json,因为您在消息正文中发送json格式。

Content-Type: application/json

体内

{
    "raw": "IEZyb206IDxGUk9NQGdtYWlsLmNvbT4KICAgIFRvOiA8VE9AZ21haWwuY29tPgogICAgU3ViamVjdDogVGVzdCBFbWFpbAogICAgCiAgICBUZXN0"
}

所以最终邮递员的样子如下。

enter image description here

enter image description here

向API发送请求后,您将收到如下响应

{
    "id": "172016110a227c19",
    "threadId": "172016110a227c19",
    "labelIds": [
        "UNREAD",
        "SENT",
        "INBOX"
    ]
}

答案 1 :(得分:0)

我认为您应该将Content-type标头设置为application/json。另外,不要忘记添加Authorization标头。

答案 2 :(得分:0)

enter image description here

如果您想了解更多详细信息,请参考以下链接: How to send a message successfully using the new Gmail REST API?

答案 3 :(得分:0)

https://stackoverflow.com/a/61507172/2131809

如果您想了解更多详细信息,请参考以下链接:Gmail API send message without using Base64 encode