使用Java客户端库连接到YouTube Data API v3的问题 - 示例代码已过时?

时间:2013-10-13 20:54:25

标签: java json youtube

这是一个非常基本的初学者问题,但我检查了主要的API网站(https://developers.google.com/youtube/v3/)非常彻底,并且在使用示例代码时非常令人沮丧,使用Google查找其他工作示例我来了什么都没有,所以我决定在这里问。

我的目标是编写一个简单的Java程序,该程序连接到YouTube帐户并检索用户播放列表的名称和内容,然后可能将它们保存到文本文件或w / e。

我在网站上找不到太多详细解释通过Java正确连接到YouTube帐户所涉及的步骤,所以我尝试运行一些示例代码。如果我以此为例: https://developers.google.com/youtube/v3/code_samples/java#retrieve_my_uploads 并将其粘贴到Eclipse中,它告诉我以下内容:

  • 不推荐使用“FileCredentialStore”类型。
  • 按以下方法:

    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load( JSON_FACTORY, MyUploads.class.getResourceAsStream("/client_secrets.json"));

它告诉我: “GoogleClientSecrets类型中的方法加载(JsonFactory,Reader)不适用于参数(JsonFactory,InputStream)”

一些谷歌搜索引导我到某个地方,建议使用InputStream的示例中使用的方法已被弃用,后来在1.16中被删除了。我相信。

  • 稍后发生以下错误:

    channelRequest.setMine("true");

其中字符串“true”,应该是布尔值true。我再次假设该方法的先前版本已被弃用。

我已经尝试过乱搞它,试图把它从谷歌拼凑起来,但它根本没用。代码似乎已经过时,不能使用最新版本的API,我在网上找到的大多数代码看起来都很旧。我不知道我在做什么,我找不到任何实际概述需要哪些步骤,原因以及它们如何工作的文档。 例如,我无法弄清楚client_secrets.json的用途以及它应该如何设置,除了它是身份验证的一部分。如果API网站完全解释了,我找不到。

有没有人知道某个网站上有一些最新的示例代码,可以执行一些简单的连接和数据检索?或者说明如何连接的正确分步指南? 我会认为类似YouTube API的内容会很直接且记录良好,但我无法理解它,除非我错过了一些重要的内容但我没有想法。

1 个答案:

答案 0 :(得分:4)

Google API说: 使用InputStream的load方法已弃用。 (计划在1.16中删除)使用load(JsonFactory,Reader)代替。 Source

因此将InputStream转换为Reader并解决了问题

 private static GoogleClientSecrets loadClientSecrets(String clientSecretsLocation) {
        try {
            Reader reader = new InputStreamReader(BigQueryJavaGettingStarted.class.getResourceAsStream(clientSecretsLocation));
            GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(new JacksonFactory(),
                    reader);
        } catch (Exception e) {
          System.out.println("Could not load client_secrets.json");
          e.printStackTrace();
        }
        return clientSecrets;
      }