Gmail API标记Android

时间:2015-10-20 14:00:29

标签: android gmail-api

我正在使用适用于Android的 Gmail API 来发送电子邮件。 我想发送邮件,以便在社交消息组中收到这些邮件。

因此,我可以通过任何方式设置电子邮件的标签,同时使用Gmail API发送电子邮件吗?

我们可以在通过mail.google.com发送邮件时设置标签,那么如何使用Gmail API实现相同的目标呢?

1 个答案:

答案 0 :(得分:0)

您无法指定标签message should have when sending it。在哪个标签下,某些消息最终应该是up to the user

但是,如果您要向用户自己发送消息,那么一旦发送消息就不难修改消息。发送消息时,您将获得响应中应用于消息的所有标签。只需send a message,然后modify the labels,即可完成。

这是一个示例(使用常规的http请求,但您可以对其中一个客户端库执行相同操作):

// Base64-encoding the message and making it url-safe by replacing
// all '+' with '-', and all '/' with '_'.
btoa("To: example@gmail.com\n" +
     "From: example@gmail.com\n" +
     "Subject: Cool man\n\n" +

     "Here is the message").replace(/\+/g, '-').replace(/\//g, '_');

// => "VG86IGV4YW1wbGVAZ21haWwuY29tCkZyb206IGV4YW1wbGVAZ21haWwuY29tClN1YmplY3Q6IFRoaXMgaXMgdGhlIHN1YmplY3QKCkhlcmUgaXMgd2VyZSB0aGUgbWVzc2FnZSBnb2Vz"

发送消息:

POST https://www.googleapis.com/gmail/v1/users/me/messages/send

{
  "raw": "VG86IGV4YW1wbGVAZ21haWwuY29tCkZyb206IGV4YW1wbGVAZ21haWwuY29tClN1YmplY3Q6IFRoaXMgaXMgdGhlIHN1YmplY3QKCkhlcmUgaXMgd2VyZSB0aGUgbWVzc2FnZSBnb2Vz"
}

<强>响应

{
 "id": "150866b2f6956617",
 "threadId": "150866b2f6956617",
 "labelIds": [
  "SENT",
  "INBOX",
  "UNREAD"
 ]
}

然后,我只需添加CATEGORY_SOCIAL - 标签即可在social标签下显示(删除INBOX - 标签根本不显示。)< / p>

请求

POST https://www.googleapis.com/gmail/v1/users/me/messages/150866b2f6956617/modify

{
 "addLabelIds": [
  "CATEGORY_SOCIAL"
 ]
}

工作得很好!

enter image description here