2013-12-09 2 views
1

YouTube 데이터 api v3을 사용하고 있지만 이상한 문제가 있습니다. 페이지 매김의 경우 후속 요청을 보내는 동안 nextPageTokem을 응답에서 사용해야하지만 내 문제는 응답에서 nextPageToken을 얻지 못한다는 점입니다. 내 코드는 아래와 같습니다.페이지 매김 문제가있는 Youtube Data API v3 Java 검색

 youtube = new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY, new HttpRequestInitializer() { 
    public void initialize(HttpRequest request) throws IOException {} 
    }).setApplicationName("DMT").build(); 


    String queryTerm = "<my movie>"; 

    YouTube.Search.List search = youtube.search().list("id,snippet"); 


    String apiKey = properties.getProperty("youtube.apikey"); 
    search.setQ(queryTerm); 
    search.setVideoDuration("long"); 

    search.setType("video"); 
    search.setFields("items(*)"); 
    SearchListResponse searchResponse = search.execute(); 
     System.out.println(searchResponse.toPrettyString()); 
     System.out.println(searchResponse.getNextPageToken()); 

    List<SearchResult> searchResultList = searchResponse.getItems(); 


    if (searchResultList != null) { 
     System.out.println(searchResponse.getPageInfo()); 
     prettyPrint(searchResultList.iterator(), queryTerm); 
    } 

무엇이 누락 되었습니까? 응답에서 헤더를 얻기 위해 어떤 것을 설정해야합니까?

미리 답변 해 주셔서 감사합니다.

답변

3

"항목"만 반환하도록 설정했기 때문입니다. 만 항목과의 nextPageToken을 반환하려면 "의 nextPageToken을 항목"재귀 함수의

+0

감사합니다. @Ibrahim Ulukaya, 도움이되었습니다. 이러한 것들에 대한 문서가 있습니까? v3의 설명서는 일부 샘플 및 javadoc 이외에 매우 희소하게 보입니다. – Karthik

0
// Recursive function to print an entire feed. 
public static void printEntireVideoFeed(YouTubeService service, 
VideoFeed videoFeed, boolean detailed) throws MalformedURLException, 
IOException, ServiceException { 
do { 
    printVideoFeed(videoFeed, detailed); 
    if(videoFeed.getNextLink() != null) { 
    videoFeed = service.getFeed(new URL(videoFeed.getNextLink().getHref()), 
    VideoFeed.class); 
    } 
else { 
     videoFeed = null; 
     } 
    } 
while(videoFeed != null); 
} 

// 샘플 사용을 그것에을 설정할 수 있습니다. 검색어 "강아지"에 대한 모든 결과를 인쇄하십시오.

YouTubeQuery query = 
new YouTubeQuery(new URL("http://gdata.youtube.com/feeds/api/videos")); 
query.setFullTextQuery("puppy"); 
VideoFeed videoFeed = service.query(query, VideoFeed.class); 
printEntireVideoFeed(service, videoFeed, false);