Javascript 如何在gmail API中获取下一页gmail?

Javascript 如何在gmail API中获取下一页gmail?,javascript,reactjs,google-api,gmail-api,Javascript,Reactjs,Google Api,Gmail Api,好的,这样我就可以成功地只收到20封电子邮件。为了检索下一页,我应该在代码中更改什么 之后,我还想显示相应电子邮件的附件。但第一个选择是获取下一页,我知道我必须使用pagetoken,但我无法实现它 const getMessages = (labelIds = "INBOX") => { // Get List of 20 message's Id const request = window.gapi.client.gmail.users.mess

好的,这样我就可以成功地只收到20封电子邮件。为了检索下一页,我应该在代码中更改什么

之后,我还想显示相应电子邮件的附件。但第一个选择是获取下一页,我知道我必须使用pagetoken,但我无法实现它

 const getMessages = (labelIds = "INBOX") => {
    // Get List of 20 message's Id
    const request = window.gapi.client.gmail.users.messages.list({
      userId: "me",
      labelIds: labelIds,
      maxResults: 20,
     
    });

    setMessages([]);

    // Send Id list to getMessagesData to get Message Data foreach Id
    request.execute(getMessagesData);
  };

  const getMessagesData = (response) => {
    const messages = response.result.messages ? response.result.messages : [];

    messages.forEach((message) => {
      window.gapi.client.gmail.users.messages
        .get({
          userId: "me",
          id: message.id,
        })
        .then(
          (response) => {
            setMessages((messages) => [...messages, response.result]);
            
          },
          (err) => {
            console.error("getMessagesData error", err);
          }
        );
    });
  };

  const getOneMessage = (messageId) => {
    window.gapi.client.gmail.users.messages
      .get({
        userId: "me",
        id: messageId,
      })
      .then(
        (response) => {
          setMessage(response.result);
        },
        (err) => {
          console.error("getMessage error", err);
        }
      );
  };
你就快到了:

const request = window.gapi.client.gmail.users.messages.list({
          userId: "me",
          labelIds: labelIds,
          maxResults: 20,
          pageToken : pageToken
        });
只需将pageToken添加到查询中

当您请求20条消息时,答案中的某个位置将存储一个pageToken。保存它并在参数中使用新的pageToken重复相同的请求


嘿,我尝试添加了这个,但这样做不起作用。应该可以,如果使用pagetoken会发生什么?我确实获得了pagetoken,但如何递归打印这些电子邮件?要递归获取所有电子邮件,只需调用do while循环:do{获取并存储电子邮件;设置新的pagetoken;}while(pagetoken!=null);