我想在没有原始消息的线程中获取回复消息。但是,当我使用 Users.messages: GET 或 Users.threads: GET 时,我也会收到带有原始消息(不需要的)的回复(根据需要)。请参阅下面的代码截图。
(据我所知,这个问题也被提出 here ,但是我没有发现建议的解决方案回答了这个问题,建议解决方案的发布者建议我开始一个新问题。我尝试使用 Users.threads然而正如 Tholle 所暗示的,得到了相同的结果。)
我是一个菜鸟,所以非常感谢任何和所有的帮助,如果我遗漏了一些明显的东西,我深表歉意。
代码
var gapiGETRequest = function (gapiRequestURL)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", gapiRequestURL, false );
xmlHttp.send( null );
return xmlHttp.responseText;
}
var gapiRequestInboxMessagesAndToken = "https://www.googleapis.com/gmail/v1/users/me/messages?q=-label%3ASENT+in%3AINBOX&access_token=" + thisToken
var allMessagesReceived = gapiGETRequest(gapiRequestInboxMessagesAndToken)
var allMessagesObject = JSON.parse(allMessagesReceived)
var messageIdsOfReceivedMessages = [];
var getIdsOfReceivedMessages = function(responseObject){
for(var i=0; i < responseObject.messages.length; i ++) {
messageIdsOfReceivedMessages.push(responseObject.messages[i].id);
}
}
var messageContentsArr = [];
var getMessageContents = function(messageIdList)
{
for(var i=0; i < messageIdList.length; i++)
{
var gapiRequestMessageWithId = "https://www.googleapis.com/gmail/v1/users/me/messages/" + messageIdList[i] + "?access_token=" + thisToken
var currentMessage = JSON.parse(gapiGETRequest(gapiRequestMessageWithId))
var encodedMessageContents = currentMessage.payload.parts[0].body.data
var decodedMessageContents = atob(encodedMessageContents.replace(/-/g, '+').replace(/_/g, '/'));
messageContentsArr.push(decodedMessageContents)
}
}
getIdsOfReceivedMessages(allMessagesObject);
getMessageContents(messageIdsOfReceivedMessages);
回复
最佳答案
您将收到完整的回复消息。当报告回复时,他们引用了原始消息,原始文本在回复消息中。您可能只想做 Gmail 和许多其他现代电子邮件应用程序所做的事情,并折叠/隐藏任何以 > 开头的回复文本。
关于gmail - 如何从 Gmail API 获取没有原始邮件的回复邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439613/