2014-07-13 2 views
0

YouTube API를 Java에서 사용하기 시작한 지 얼마되지 않아서 예외/스택 추적을 찾을 수없는 이유가 무엇인지 알아 내려고했습니다. 내가하려는 것은 현재 사용자가 업로드 한 비디오 목록을 얻는 것입니다.YouTube API v3에서 예외 표시 안 함

GoogleTokenResponse tokenFromExchange = new GoogleTokenResponse(); 
tokenFromExchange.setAccessToken(accessToken); 

GoogleCredential credential = new GoogleCredential.Builder().setJsonFactory(JSON_FACTORY).setTransport(TRANSPORT).build(); 
credential.setFromTokenResponse(tokenFromExchange); 

YouTube.Channels.List channelRequest = youtube.channels().list("contentDetails"); 
channelRequest.setMine(true); 
channelRequest.setFields("items/contentDetails,nextPageToken,pageInfo"); 
ChannelListResponse channelResult = channelRequest.execute(); 

이 코드에는 아무런 이상이 보이지 않지만 여러 가지를 제거하려고했지만 여전히 작동하지 않습니다. 비슷한 문제가 발생하면 알려주세요. 현재 사용중인 클라이언트 라이브러리 버전은 v3-rev110-1.18.0-rc입니다.

+0

코드의 일부만 accessToken에 제공합니다. 문제가 oAuth 흐름에있을 수 있습니까? 그 부분을 추가 할 수 있을까요? 또한 문서에서 "내 업로드 항목 검색"샘플 코드를보고 도움이되는지 확인하십시오 (비슷한 전화에서와 같이) : https://developers.google.com/youtube/v3/code_samples/java#retrieve_my_uploads – jlmcdonald

+0

액세스 토큰을 사용하여 현재 사용자에 대한 정보를 얻을 수 있으므로 문제가 아닌 것 같습니다. 나는 허가 문자열을 다시 한번 점검 할 것이다. 어느 쪽이든, 내가 왜 작동하지 않을 때 아무것도 인쇄하지 않는지 궁금하네요. – juminoz

+0

요청이 YouTube 끝에서 거부 된 경우 channelResult의 상태 코드는 400 또는 403입니다. 그러나 channelResult가 완전히 비어있는 경우 이상합니다. channelResult.getItems()는 빈 목록을 반환합니까? – jlmcdonald

답변

0

YouTube API에는 작동하는 코드가 있으므로 사용할 수 있습니다.

public static YouTubeService service; 
public static String USER_FEED = "http://gdata.youtube.com/feeds/api/users/"; 
public static String CLIENT_ID = "..."; 
public static String DEVELOPER_KEY = "..."; 

public static int getVideoCountOf(String uploader) { 
    try { 
     service = new YouTubeService(CLIENT_ID, DEVELOPER_KEY); 
     String uploader = "UCK-H1e0S8jg-8qoqQ5N8jvw"; // sample user 
     String feedUrl = USER_FEED + uploader + "/uploads"; 
     VideoFeed videoFeed = service.getFeed(new URL(feedUrl), VideoFeed.class); 
     return videoFeed.getTotalResults(); 
    } catch (Exception ex) { 
     Logger.getLogger(YouTubeCore.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    return 0; 
} 

이 간단한 방법으로 사용자의 동영상 수를 알 수 있습니다. videoFeed을 통해 읽을 수 있습니다. printEntireVideoFeed을 api 페이지에서 준비했습니다.