我正在使用Users.messages:modify方法将标签应用于电子邮件,但是,我必须在以编程方式应用的标签出现在gmail用户界面之前刷新页面。
如果我手动选择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)
}
}
}
答案 0 :(得分:2)
不是我知道的。 Gmail网络界面执行一些惰性缓存,并且似乎没有注意到对底层数据的特别好的更改(即来自收件箱,IMAP,API等)。我相信它不需要完整的浏览器(F5)刷新但当然需要做一些UI操作,比如点击标签或点击网页内刷新图标以显示更新。