这是一个非常基本的初学者问题,但我非常彻底地检查了主要 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 类型中的方法 load(JsonFactory, Reader) 不适用于参数 (JsonFactory, InputStream)”
Google 搜索了一下,我发现示例中使用 InputStream 的方法已被弃用,我相信后来在 1.16 中被删除了。
稍后出现以下错误:
channelRequest.setMine("true");
其中字符串“true”,应该是 boolean 值true。我再次假设该方法的先前版本已被弃用。
我尝试过摆弄它,试图将谷歌的东西拼凑起来,但它根本不起作用。该代码似乎已经过时,无法与最新版本的 API 一起使用,而且我可以在网上找到的大多数代码似乎也很旧。我对自己正在做的事情了解不够,也找不到任何文档来实际概述所需的步骤、原因以及它们如何工作。 例如,除了作为身份验证的一部分之外,我无法弄清楚 client_secrets.json 的用途以及应该如何设置它。如果 API 网站有完整的解释,我找不到在哪里。
有人知道有一个网站有一些最新的示例代码可以执行一些简单的连接和数据检索吗?或者解释如何连接的正确分步指南? 我本以为像 YouTube API 这样的东西会很简单并且有详细的文档,但我就是无法理解它,除非我错过了一些重要的东西,但我没有想法。
最佳答案
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;
}
关于java - 使用 Java 客户端库连接到 YouTube Data API v3 时出现问题 - 示例代码已过时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350180/