这是一个非常基本的初学者问题,但我检查了主要的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中,它告诉我以下内容:
按以下方法:
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的内容会很直接且记录良好,但我无法理解它,除非我错过了一些重要的内容但我没有想法。
答案 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;
}