【问题标题】:Google GMail API Error: No label add or removes specifiedGoogle GMail API 错误:未指定添加或删除标签
【发布时间】:2021-04-11 11:19:19
【问题描述】:

我正在使用 google API 构建一个小型个人网络应用程序,但我遇到了这个端点的问题:https://developers.google.com/gmail/api/reference/rest/v1/users.messages/modify

我正在尝试通过 AJAX 调用它,但它一直告诉我:

没有指定添加或删除标签

我觉得我正在遵循此处的文档规范,并且该错误没有为我提供更多信息;我不知道该怎么办。

我也尝试添加没有数据的 addLabelIds 参数,但它不会改变任何东西。

我已尝试查找此问题,但所有解决方案似乎都与其他 API 实现的怪癖有关,并且似乎并不真正适用于我的情况。任何帮助,将不胜感激;这是非常基本的,但这是我的 AJAX 请求代码:

$.ajax({
  url: "https://gmail.googleapis.com/gmail/v1/users/me/messages/" + messageId + "/modify",
  beforeSend: function(xhr) {
    xhr.setRequestHeader("Authorization", "Bearer " + mailToken);
  },
  method: "POST",
  data: {
    "removeLabelIds": ["UNREAD"]
  },
  success: function(data) {
    ele.removeClass("unread");
  },
  fail: function(data) {
    console.log(data);
  }
});

【问题讨论】:

    标签: javascript jquery ajax google-api


    【解决方案1】:

    好的,我自己找到了解决方案;我只是将其发布在这里,以防其他人遇到此问题。

    问题是您必须使用 Content-Type: application/json 发出请求,并将请求作为 JSON 字符串发布。

    这是修改后的有效 AJAX 请求。

    
    $.ajax({
        url: "https://content-gmail.googleapis.com/gmail/v1/users/me/messages/" + messageId + "/modify?alt=json",
        beforeSend: function (xhr) {
            xhr.setRequestHeader("Authorization", "Bearer " + mailToken);
            xhr.setRequestHeader("Content-Type", "application/json");
        },
        method: "POST",
        data: JSON.stringify({
            "removeLabelIds": [
                "UNREAD"
            ]
        }),
        success: function(data) {
            ele.removeClass("unread");
        },
        fail: function(data) {
            console.log(data);
        }
    });
    
    

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 2019-07-24
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 2016-04-24
      • 2018-06-17
      • 1970-01-01
      • 2017-01-06
      相关资源
      最近更新 更多