我正在尝试使用Gmail的Resumable选项将附件上传到电子邮件中。文档参考:https://developers.google.com/gmail/api/guides/uploads#resumable。
目前,我可以使用可恢复的URI发送电子邮件,但没有附件(使用邮递员)。文档没有提供非常清楚的示例,说明请求的具体外观,并且在搜索互联网之后似乎没有很多示例。
我的要求分为两部分:
初始请求 -
Request URL:
POST /upload/gmail/v1/users/me/messages/send?uploadType=resumable
Host: www.googleapis.c om (can't post links so I interrupted the url)
Headers:
Authorization: Bearer my_token_here
Content-Length: 113
Content-Type: application/json
X-Upload-Content-Length: 67
X-Upload-Content-Type: message/rfc822
Body:
{"raw":"VG86IG5pcnZhbmEucm9ja2VyQGdtYWlsLmNvbQpTdWJqZWN0OiBUZXN0RW1haWxTdWJqZWN0MwoKTWVzc2FnZSBjb250ZW50cyAjMy4"}
正文是64位编码的字符串,包含“收件人”,“主题”和“电子邮件”内容。然后gmail返回一个空主体的响应,以及一个如下所示的“location”标题:googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=resumable&upload_id=BRnB2UoAsKwzNMoQAy-JtmP6mu5agltqOWZ9uerI3k- KNTDJ73PWEjKuAHpko4RN6weSEysddH2kjj4G24uFw6E9oPv1XP69l7_KcmNuW-RAoz_5oS1T_4_E。 (已移除https://,因为此帐户在帖子中只能有一个链接)
然后我跟进对位置标题中返回的URL的PUT请求。
第二个请求如下所示:
Request URL:
PUT /upload/gmail/v1/users/me/messages/send?uploadType=resumable&upload_id=BRnB2UoAsKwzNMoQAy-JtmP6mu5agltqOWZ9uerI3k-KNTDJ73PWEjKuAHpko4RN6weSEysddH2kjj4G24uFw6E9oPv1XP69l7_KcmNuW-RAoz_5oS1T_4_E
Host: www.googleapis.c om
Headers:
Content-Length: 67
Content-Type: message/rfc822
Body:
{"raw":"VG86IG5pcnZhbmEucm9ja2VyQGdtYWlsLmNvbQpTdWJqZWN0OiBUZXN0RW1haWxTdWJqZWN0MwoKTWVzc2FnZSBjb250ZW50cyAjMy4"}
--- OR ---
I choose the binary option, and attach the file I am looking to upload via Postman.
我收到了Gmail的回复,其中包含以下对象:
{
"id": "159d7ded3125e255",
"threadId": "159d7ded3125e255",
"labelIds": [
"SENT"
]
}
电子邮件已成功发送,但电子邮件中没有附件。当我在Gmail中显示原始电子邮件时,没有任何附件的证据。原始如下:
Received: from 325276275830 named unknown by gmailapi.google.com with HTTPREST; Wed, 25 Jan 2017 15:03:33 -0800
To: some.name@gmail.com
Subject: TestEmailSubject3
Date: Wed, 25 Jan 2017 15:03:33 -0800
Message-Id: <CEROA6F=0ohk33RD9XyC_gW1DZO88xYF4bXYqrCSct62MUuytDw@mail.gmail.com>
From: name_here@gmail.com
Message contents #3.
我错过了什么?我是否需要以不同的方式对某些特定内容进行编码,或者将某些数据放在不同的位置?我没有收到任何错误。我已经在这几天工作了,我只是想不出来。