Gmail API:异步标签 update/application
Gmail API: asynchronous label update/application
我正在使用 Users.messages:modify 方法将标签应用于电子邮件,但是,我必须在我以编程方式应用的标签出现在 gmail 用户界面上之前刷新页面。
所需的操作类似于我手动 select gmail 邮件,然后从 gmail 屏幕顶部的下拉标签应用程序应用标签:标签是异步应用的。这可以通过编程方式完成吗?
代码
var applyLabel = function (gapiRequestURL, labelIdsArr)
{
$.ajax({
url: gapiRequestURL,
method: "POST",
contentType: "application/json",
data: JSON.stringify({
addLabelIds: labelIdsArr
}),
success: function(msg){
// alert(JSON.stringify(msg));
},
error: function(msg){
alert("Error:" + JSON.stringify(msg));
}
})
}
var decideWhichLabelToApply = function(messageContentsArr){
var testLabelOne = "Label_12"
var testLabelTwo = "Label_13"
var labelIdsArr = []
for(var i=0; i < messageContentsArr.length; i++){
var currentMessage = messageContentsArr[i]
var messageID = currentMessage.id
if (true){
var labelModifyURL = "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageID + "/modify?access_token=" + thisToken
labelIdsArr.push(testLabelOne)
applyLabel(labelModifyURL, labelIdsArr)
}
else {
var labelModifyURL = "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageID + "/modify?access_token=" + thisToken
labelIdsArr.push(testLabelTwo)
applyLabel(labelModifyURL, labelIdsArr)
}
}
}
据我所知没有。 Gmail 网络界面做了一些惰性缓存,似乎没有特别注意底层数据的变化(即来自收件箱、IMAP、API 等)。我相信它不需要完整的浏览器 (F5) 刷新 但肯定需要执行一些 UI 操作,例如点击标签或点击网页内刷新图标更新显示。
我正在使用 Users.messages:modify 方法将标签应用于电子邮件,但是,我必须在我以编程方式应用的标签出现在 gmail 用户界面上之前刷新页面。
所需的操作类似于我手动 select gmail 邮件,然后从 gmail 屏幕顶部的下拉标签应用程序应用标签:标签是异步应用的。这可以通过编程方式完成吗?
代码
var applyLabel = function (gapiRequestURL, labelIdsArr)
{
$.ajax({
url: gapiRequestURL,
method: "POST",
contentType: "application/json",
data: JSON.stringify({
addLabelIds: labelIdsArr
}),
success: function(msg){
// alert(JSON.stringify(msg));
},
error: function(msg){
alert("Error:" + JSON.stringify(msg));
}
})
}
var decideWhichLabelToApply = function(messageContentsArr){
var testLabelOne = "Label_12"
var testLabelTwo = "Label_13"
var labelIdsArr = []
for(var i=0; i < messageContentsArr.length; i++){
var currentMessage = messageContentsArr[i]
var messageID = currentMessage.id
if (true){
var labelModifyURL = "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageID + "/modify?access_token=" + thisToken
labelIdsArr.push(testLabelOne)
applyLabel(labelModifyURL, labelIdsArr)
}
else {
var labelModifyURL = "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageID + "/modify?access_token=" + thisToken
labelIdsArr.push(testLabelTwo)
applyLabel(labelModifyURL, labelIdsArr)
}
}
}
据我所知没有。 Gmail 网络界面做了一些惰性缓存,似乎没有特别注意底层数据的变化(即来自收件箱、IMAP、API 等)。我相信它不需要完整的浏览器 (F5) 刷新 但肯定需要执行一些 UI 操作,例如点击标签或点击网页内刷新图标更新显示。