Sto cercando di utilizzare l'API di Gmail per ottenere l'email di un utente, afferrare l'oggetto del messaggio e il corpo e visualizzarlo su una pagina web. Farò altre cose con esso, ma questa è la parte con cui sto avendo difficoltà. Sto usando Angular.js.API Gmail - Analizza il contenuto del messaggio (decodifica Base64?) Con Javascript
Qui è la mia chiamata API:
function makeApiCall() {
gapi.client.load('gmail', 'v1', function() {
var request = gapi.client.gmail.users.messages.list({
labelIds: ['INBOX']
});
request.execute(function(resp) {
var content = document.getElementById("message-list");
angular.forEach(resp, function(message) {
var email = gapi.client.gmail.users.messages.get({'id': message.id});
// var raw = email.payload.parts;
// console.log(raw);
content.innerHTML += JSON.stringify(email) + "<br>";
})
});
});
}
Così gapi.client.gmail.users.messages.list
restituisce un array dei miei messaggi, con i loro numeri ID. Funziona.
La chiamata a gapi.client.gmail.users.messages.get({<specific message ID>})
emette questo - {"B":{"method":"gmail.users.messages.get","rpcParams":{},"transport":{"name":"googleapis"}}}
.
Non so cosa sia, ma cercando di ottenere il payload del messaggio (email.payload.parts
), i risultati sono undefined
. Quindi, come posso ottenere il contenuto del messaggio?
Inoltre, suppongo che se riesco a ottenere il contenuto del messaggio, dovrei quindi basare Base64 per decodificare il contenuto per ottenere un po 'di inglese. Qualsiasi suggerimento per questo sarebbe di grande aiuto anche. Ho trovato questo: https://github.com/kvz/phpjs, ma dal momento che non sono sicuro di come ottenere il contenuto del messaggio in modo che possa provare a decodificarli, quindi non sono sicuro che php.js sia di aiuto in tal senso.
Quando si cerca di accedere ' gapi.client.gmail.users.messages.get ({}). payload.body.data', emette 'Uncaught TypeError: Impossibile leggere la proprietà 'body' di undefined'. Tuttavia, quando esegui il test della chiamata al metodo .get nella documentazione dell'API di Gmail (sapevo del link che hai postato) su Prova! sezione della parte messages.get, posso vedere il contenuto nel campo del payload del mio oggetto messaggio, quindi non dovrebbe essere indefinito. Anche se per le parti [], si dice 'Per ... testo/chiaro, questo campo è vuoto. Un messaggio di posta elettronica di base conterrà testo normale, corretto? Quindi forse non è quello che dovrei andare .. –
eugene1832