Youtube搜索:列表获取PageInfo和nextPageToken null

我正在尝试使用关键字从YouTube获取video。 我正在使用YouTube API Java库。 我可以成功获得前50条记录,但要获取下一条记录,需要设置nextPageToken 。 但我得到nextPageToken null 。 以下是我的代码。

 YouTube.Search.List search = youtube.search().list("id,snippet"); search.setOauthToken(credential.getAccessToken()); search.setMaxResults(50L); search.setQ(keywords); // keywords is string type and input by user. search.setType("video"); search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)"); VideoList returnList = new VideoList(); do { search.setKey("MYKEY"); SearchListResponse searchResponse = search.execute(); // This get 50 items proper. List searchResultList = searchResponse.getItems(); // Why PageInfo is null? PageInfo pageInfo = searchResponse.getPageInfo(); // int totalResults = pageInfo.getTotalResults(); // int pageSize = pageInfo.getResultsPerPage(); if(searchResponse != null){ // i use searchResultList and update my database for search. .... .... // PageToken also null. String pageToken = searchResponse.getNextPageToken(); search.setPageToken(pageToken); } else{ break; } } while (true); }catch(Exception ex){ ex.printStackTrace(); } 

由于您没有提及nextpagetoken或pageinfo字段,因此您将获得null,当您明确设置字段时,搜索结果集会受到限制。

 search.setFields("items(kind,id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url),nextPageToken,pageInfo,prevPageToken"); System.out.println("PAGE INFO: " +response.getPageInfo()); System.out.println("next page token :" +response.getNextPageToken()); System.out.println("prev page token:"+ response.getPrevPageToken()); 

输出:输入搜索词

扑克脸

PAGE INFO:{“resultsPerPage”:2,“totalResults”:667891}

下一页令牌:CAIQAA

prev page token:null