Google GMail API Error: No label add or removes specified
Google GMail API Error: No label add or removes specified
我正在使用 google API 构建一个小型个人 Web 应用程序,但我遇到了此端点的问题:https://developers.google.com/gmail/api/reference/rest/v1/users.messages/modify
我试图通过 AJAX 调用它,但它一直告诉我:
No label add or removes specified
我觉得我遵循了此处的文档规范,但错误没有提供更多信息;我不知道该怎么做。
我也试过添加没有数据的 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);
}
});
好的,我自己找到了解决方案;我只是要 post 在这里,以防其他人遇到这个问题。
问题是您必须使用 Content-Type: application/json
发出请求,并且 POST 请求作为 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);
}
});
我正在使用 google API 构建一个小型个人 Web 应用程序,但我遇到了此端点的问题:https://developers.google.com/gmail/api/reference/rest/v1/users.messages/modify
我试图通过 AJAX 调用它,但它一直告诉我:
No label add or removes specified
我觉得我遵循了此处的文档规范,但错误没有提供更多信息;我不知道该怎么做。
我也试过添加没有数据的 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);
}
});
好的,我自己找到了解决方案;我只是要 post 在这里,以防其他人遇到这个问题。
问题是您必须使用 Content-Type: application/json
发出请求,并且 POST 请求作为 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);
}
});