nextPageToken不会改变

时间:2018-02-12 16:32:40

标签: javascript node.js google-api gmail

我正在尝试使用node.js Google API来迭代我的电子邮件

const google     = require('googleapis');

问题是我不断收到相同的电子邮件,而且每个回复都包含完全相同的 nextPageToken

我还注意到,尝试控制 maxResults 参数无效。我试图将它们添加到选项对象和查询对象中,但它无论如何都没有效果。

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);
    }
  });
}

我做错了什么?

0 个答案:

没有答案