Gmail API中的分页(以前的令牌)

时间:2019-01-28 12:49:12

标签: laravel-5 google-api pagination token gmail-api

我已经实现了GMail API,可以为我获取电子邮件。现在,我正在尝试向其添加分页功能,我已经成功获取了下一个记录,但是现在我还希望具有“上一个”选项(需要上一个标记)。

以下是我到目前为止无法尝试的内容。

public function paginate(Request $request){
        $label =  $request->input("label");
        $nextToken =  $request->input("next");
        $prevToken =  $request->input("prev");
        $messages = LaravelGmail::message();
        $msg = $messages->take(3)->in($label)->all($nextToken);
        $nextToken_New = $messages->pageToken;

        return view('gmail.load_mails', ['messages' => $msg, 'nextPageToken' => $nextToken_New,
        'prevPageToken' => $nextToken]);
}

现在,在上面的函数中,nextPageToken在视图中以$nextToken_New的形式传递 对于prevPageToken,我无法设置上一页标记。(在代码中,我将last nextPageToken设置为prevPageToken,这是行不通的)

记住prevPageToken将用于设置返回键。

1 个答案:

答案 0 :(得分:1)

Gmail API不支持先前的页面令牌。它不会将值返回给您。

您的第一个选择是将这些令牌保存在您的服务器上,然后当您想返回页面时,只需将所需的令牌提供给页面令牌字段

第二种选择和我个人认为最合理的选择。将在服务器上缓存这些请求返回的数据,以便

  1. 您不必对服务器进行额外的http调用。
  2. 您没有像以前那样打过电话。

API并非供您用来在应用程序中实现分页。您应该只在工作后请求数据,然后再缓存该数据,这样您就不需要两次发出相同的请求。