如何解决Google GMail API 错误:未指定标签添加或删除
我正在使用 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);
}
});
解决方法
好的,我自己找到了解决方案;我只是想把它贴在这里,以防其他人遇到这个问题。
问题是您必须使用 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);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。