NextPageToken does not change

I am trying to use node.js google API to repeat my emails

const google     = require('googleapis');

The problem is that I continue to receive the same email messages and each reply contains the same nextPageToken .

I also noticed that trying to control the maxResults parameter is not affected. I tried to add them to the options object and request objects, and it had no effect in any way.

function listThreads(auth, nextPageToken) {
  const gmail   = google.gmail('v1');
  const query   = {
    auth  : auth,
    userId: 'me',
    q: ""
  };
  const options = {maxResults: 20}
  if (nextPageToken) {
    query.pageToken = nextPageToken;
  }
  gmail.users.messages.list(query, options, function(err, response) {
    if (err) {
      console.log('The API returned an error: ' + err);
      return;
    }
    const messages = response.messages;
    if (messages.length === 0) {
      console.log('No threads found.');
    } else {
      for (let i = 0; i < messages.length; i++) {
        const message = messages[i];
        gmail.users.messages.get({
          auth  : auth,
          userId: 'me',
          id    : message.id
        }, function(err, response) {
          if (err) {
            logger.error("Failed to get email", err);
          } else {
            const parser = new Parser();
            parser.parse(response.payload, response.labelIds);
          }
        });
      }
    }
    if (response.nextPageToken) {
      listThreads(auth, response.nextPageToken);
    }
  });
}

What am I doing wrong?

+4
source share

Source: https://habr.com/ru/post/1693543/


All Articles