使用 /users 时为 Gmail 邮件添加标签。messages/send

Add labels to Gmail message while using /users.messages/send

使用 /users.messages/send API 发送电子邮件时,是否可以在同一 API 调用中为邮件分配标签?

我知道您可以使用 modify to apply a label to the message but I cannot include the gmail.modify scope for this application so using that endpoint isn't an option for me. The documentation says that the send endpoint takes an instance of Message,它允许 labelIds 键。

我已经尝试使用下面的 JSON 主体发出 API 请求。它成功 发送了电子邮件,但未分配标签。由于电子邮件已发送,我相信原始消息不是问题所在。我怀疑这个端点只是忽略了正文的 labelIds 部分。

有谁知道在使用 send 端点时是否可以设置标签?

{
  "raw": "<RFC 2822 formatted and base64url encoded string>",
  "labelIds": [
    "Label_1"
  ]
}

我直接从标签端点获得了 ID Label_1,因此 ID 是正确的。

这些是我的客户+用户获准使用的范围。话虽这么说,我还包含了额外的范围来测试,但同样的问题发生了,即使您批准了 gmail.modifygmail.compose 范围,也不会设置标签。

userinfo.email
userinfo.profile
https://www.googleapis.com/auth/gmail.labels
https://www.googleapis.com/auth/gmail.send
https://www.googleapis.com/auth/contacts.readonly

编辑: 如果这是一个错误,我也提交了 ticket with Google

这是有意为之的行为。

之前在 Issue Tracker 中报告过,响应是:

This behaviour is working as intended, labels can only added for inserted/imported messages. For sent messages, you can use users.messages.modify to update the labels after the message is sent.

不过,由于可以通过 UI 在发送消息时设置标签,我认为这可能是一个有效的功能请求。我建议你提交一份。

参考: