【问题标题】:Golang GMAIL API 400: Invalid label:Golang GMAIL API 400:标签无效:
【发布时间】:2021-10-13 07:10:31
【问题描述】:

使用 Gmail API 读取我的邮箱。邮件阅读过程按预期工作,但我想更改阅读邮件的标签,仅出于确认目的,以便我可以仅在我的 Gmail 收件箱中跟踪阅读邮件列表。尝试了两种更改标签的方法,但没有一种方法对我有用。需要相同的建议

方法:

  1. 代码库是用 Golang 编写的(作为后端)
  2. 已尝试使用 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"}

(方法一) -

Gmail Modify API

有效载荷


    {
      "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 请求,但如果我们使用系统标签请求它允许我们修改 标签。

【问题讨论】:

  • 尝试一次添加一个新的,然后发送删除旧的请求。

标签: go gmail-api


【解决方案1】:

您使用的是标签名称,而不是标签ID。要获取标签id,您必须使用Method: users.labels.list

回应:

获得 ID 后,您现在可以在 Method: users.messages.modify 中使用它

请求正文:

回应:

【讨论】:

猜你喜欢
  • 2019-04-18
  • 2017-04-23
  • 1970-01-01
  • 2014-08-02
  • 2015-01-13
  • 2017-01-06
  • 2018-06-17
  • 2020-06-05
  • 2021-05-25
相关资源
最近更新 更多