【发布时间】:2021-10-13 07:10:31
【问题描述】:
使用 Gmail API 读取我的邮箱。邮件阅读过程按预期工作,但我想更改阅读邮件的标签,仅出于确认目的,以便我可以仅在我的 Gmail 收件箱中跟踪阅读邮件列表。尝试了两种更改标签的方法,但没有一种方法对我有用。需要相同的建议
方法:
- 代码库是用 Golang 编写的(作为后端)
- 已尝试使用 Google API Explorer
(方法一) -
Go 示例代码:
gmsg: = gmail.ModifyMessageRequest {
RemoveLabelIds: [] string {
"INBOX". //system defined label
},
AddLabelIds: [] string {
"INBOXING" //my custom label. created through Gmail
},
}
_, errDelete: = gService.Users.Messages.Modify("me", messageid, &gmsg).Do()
if (errDelete != nil) {
logs.Error("GMAIL SERVICE ERROR:: for [", accountEmail, "] while moving message to [INBOXING] folder ", errDelete.Error())
}
出现以下错误:
{"level":"error","msg":"GMAIL SERVICE ERROR:: for [sample@gmail.com] while moving message to [INBOXING] folder googleapi: Error 400: Invalid label: INBOXING, invalidArgument","time":"2021-08-09 20:05:13"}
(方法一) -
有效载荷
{
"addLabelIds": [
"INBOXING"
],
"removeLabelIds": [
"INBOX"
]
}
来自 Google API 的响应 -
{
"error": {
"code": 400,
"message": "Invalid label: INBOXING",
"errors": [
{
"message": "Invalid label: INBOXING",
"domain": "global",
"reason": "invalidArgument"
}
],
"status": "INVALID_ARGUMENT"
}
}
观察 - *
关于使用自定义标签的 Gmail API 修改邮件时返回 400 bad 请求,但如果我们使用系统标签请求它允许我们修改 标签。
【问题讨论】:
-
尝试一次添加一个新的,然后发送删除旧的请求。