¿Cómo puedo obtener la propiedad ‘payload’ de la lista de mensajes? API de Gmail

Soy nuevo en el nodo y quiero obtener información sobre mis mensajes de Gmail, como quién escribió el mensaje y el texto. Sigo el ejemplo de inicio rápido y escribo el siguiente código, pero solo hay un campo ‘id’ y ‘threadId’ en la salida.

function listMessages(auth) { var gmail = google.gmail('v1'); gmail.users.messages.list({ auth: auth, userId: 'me' }, function(err, response) { if (err) { console.log('The API returned an error: ' + err); return; } var messages = response.messages; if (messages.length == 0) { console.log('No messages found.'); } else { console.log('Messages:'); for (var i = 0; i < messages.length; i++) { var message = messages[i]; console.log(message); } } }); } 

¿Podría alguien explicarme? Gracias.

messages.list() API devuelve solo los ID de mensaje y los ID de hilo por diseño. Si necesita obtener detalles de esos mensajes, necesita hacer otra llamada a la API messages.get() para obtener detalles específicos de cada mensaje.

Referencia de la API: https://developers.google.com/gmail/api/v1/reference/users/messages/get

Si bien esto funcionará, es posible que desee echar un vistazo a las operaciones por lotes de GMail que permiten obtener detalles de los mensajes en una llamada (aunque con limitaciones).

Guía de lotes de Google: https://developers.google.com/gmail/api/guides/batch

Consultas similares han sido respondidas aquí en SO:

  • API de Gmail todos los mensajes
  • Mensajes de usuarios de la API de Gmail: lista
 function getMessage(userId, messageId, callback) { var request = gapi.client.gmail.users.messages.get({ 'userId': userId, 'id': messageId }); request.execute(callback); } 

agregue ” me ” como userId y agregue su ID de mensaje en messageId archivado. otros campos son opcionales.