Chciałbym otrzymać wiadomość zwrotną w wątku bez oryginalnej wiadomości. Jednak gdy używam albo Users.messages: GET, albo Users.threads: GET, otrzymuję odpowiedź (zgodnie z życzeniem) z oryginalną wiadomością (niepożądaną). Zobacz zrzut ekranu poniżej kodu.Jak uzyskać odpowiedź bez oryginalnej wiadomości z interfejsu Gmail API
(To pytanie, o ile mogę powiedzieć, zostało również postawione here, jednak nie znalazłem, że proponowane rozwiązanie odpowiada na pytanie, a plakat proponowanego rozwiązania zasugerował, że zaczynam nowe pytanie. .threads, jak sugeruje Tholle, otrzymał jednak taki sam wynik.)
Jestem noobem, więc wszelka pomoc jest bardzo doceniana i przepraszam, jeśli brakuje mi czegoś oczywistego.
Kod
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);
AFAIK, nie możesz, ponieważ jest częścią treści wiadomości e-mail z odpowiedzią. Gmail wysyła Ci tylko tekst znajdujący się w e-mailu z odpowiedzią. Trzeba samemu przeanalizować ten tekst, aby usunąć to, czego nie chcesz. –
W sekcji PHP nie było linii "preg_replace": https://developers.google.com/gmail/api/v1/reference/users/messages/get#response 'var decodedMessageContents = atob (encodedMessageContents.replace (/ -/g, '+'). replace (/ _/g, '/')); ' Dzięki za napisanie kodu! –