Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java YouTube API v3未显示异常_Java_Video_Youtube Api_Oauth 2.0_Youtube Channels - Fatal编程技术网

Java YouTube API v3未显示异常

Java YouTube API v3未显示异常,java,video,youtube-api,oauth-2.0,youtube-channels,Java,Video,Youtube Api,Oauth 2.0,Youtube Channels,我刚开始使用YouTube API for Java,我很难弄清楚为什么事情不起作用,因为在哪里找不到异常/堆栈跟踪。我想做的是获取当前用户上传的视频列表 GoogleTokenResponse tokenFromExchange = new GoogleTokenResponse(); tokenFromExchange.setAccessToken(accessToken); GoogleCredential credential = new GoogleCredential.Builde

我刚开始使用YouTube API for Java,我很难弄清楚为什么事情不起作用,因为在哪里找不到异常/堆栈跟踪。我想做的是获取当前用户上传的视频列表

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。

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;
}

这个简单的方法可以告诉你一个用户有多少视频。您可以使用api页面上准备的PrintEntityRevieveDeoFeed阅读videoFeed

您不提供获取accessToken的代码部分。问题可能在您的oAuth流中吗?你能把那些零件加进去吗?还可以查看文档中的“retrieve my uploads”(检索我的上传)示例代码,看看这是否有帮助(因为它会进行类似的调用):我可以使用访问令牌获取当前用户的信息,因此我认为这不是问题所在。我将再次检查权限字符串。不管是哪种方式,我想知道为什么它不工作时不打印任何内容。如果请求在YouTube端被拒绝,channelResult的状态代码将是400或403。但如果channelResult完全是空的,那就很奇怪了。channelResult.getItems()是否返回空列表?