本快速入门指南介绍了如何设置一个简单的 Java 命令行应用,该应用可向 YouTube Data API 发出请求。本快速入门实际上介绍了如何发出两项 API 请求:
- 您将使用 API 密钥(用于标识您的应用)来检索有关 GoogleDevelopers YouTube 频道的信息。
- 您将使用 OAuth 2.0 客户端 ID 提交已获授权的请求,以检索有关您自己 YouTube 频道的信息。
前提条件
如需运行本快速入门,您需要满足以下条件:
- Java 1.7 或更高版本。
- Gradle 2.3 或更高版本。
- 可连接到互联网并使用网络浏览器。
- Google 账号
第 1 步:设置项目和凭据
在 API 控制台中创建或选择项目。在 API 控制台中为您的项目完成以下任务:
在库面板中,搜索 YouTube Data API v3。点击相应 API 的列表,确保该 API 已为您的项目启用。
在“凭据”面板中,创建两个凭据:
创建 API 密钥 您将使用该 API 密钥发出不需要用户授权的 API 请求。例如,您无需用户授权即可检索有关公开 YouTube 频道的信息。
创建 OAuth 2.0 客户端 ID 将应用类型设置为其他。对于需要用户授权的请求,您需要使用 OAuth 2.0 凭据。例如,您需要获得用户授权才能检索有关当前已通过身份验证的用户的 YouTube 频道的信息。
下载包含 OAuth 2.0 凭据的 JSON 文件。该文件的名称类似于
client_secret_CLIENTID.json
,其中CLIENTID
是您项目的客户端 ID。
第 2 步:准备项目
请完成以下步骤来准备 Gradle 项目:
在工作目录中,运行以下命令以创建新的项目结构:
$ gradle init --type basic $ mkdir -p src/main/java src/main/resources
将您在创建 OAuth 2.0 客户端 ID 后下载的 JSON 文件移动到工作目录下的
src/main/resources
目录,并将该文件重命名为client_secret.json
。打开工作目录中的
build.gradle
文件,并将其内容替换为以下内容:apply plugin: 'java' apply plugin: 'application' mainClassName = 'ApiExample' sourceCompatibility = 1.7 targetCompatibility = 1.7 version = '1.0' repositories { mavenCentral() } dependencies { compile 'com.google.api-client:google-api-client:1.23.0' compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0' compile 'com.google.apis:google-api-services-youtube:v3-revREVISION-CL_VERSION' }
在
build.gradle
文件中,您需要将 REVISION 和 CL_VERSION 变量替换为 YouTube Data API 的客户端库文档中的两个值。下面的屏幕截图显示了 YouTube 数据分析 API 的文档,其中显示了这两个变量在页面上的位置。
第 3 步:设置并运行示例
使用侧边栏中的 APIs Explorer widget 获取用于检索 GoogleDevelopers YouTube 频道相关信息的示例代码。此请求使用 API 密钥来标识您的应用,不需要用户授权,也不需要运行该示例的用户提供任何特殊权限。
- 打开 API 的 channels.list 方法的文档。
在该页面上,“常见用例”部分包含一个表格,其中说明了该方法的几种常见用法。表格中的第一个列表是按频道 ID 列出的结果。
点击第一个列表的代码符号,打开并填充全屏 APIs Explorer。
全屏 API Explorer 的左侧显示以下内容:
在请求参数标题下方,列出了相应方法支持的参数。应设置
part
和id
参数值。id
参数值UC_x5XG1OV2P6uZZ5FSM9Ttw
是 GoogleDevelopers YouTube 频道的 ID。在参数下方,有一个名为凭据的部分。相应部分中的下拉菜单应显示值 API 密钥。APIs Explorer 默认使用演示凭据,以便您更轻松地开始使用。不过,您将使用自己的 API 密钥在本地运行该示例。
全屏 API Explorer 的右侧显示了包含不同语言代码示例的标签页。选择 Java 标签页。
复制代码示例并将其保存到名为
src/main/java/ApiExample.java
的文件中。 每个示例都使用相同的类名 (ApiExample
),因此您无需修改build.gradle
文件即可运行不同的示例。在您下载的示例中,找到
YOUR_API_KEY
字符串,并将其替换为您在此快速入门的第 1 步中创建的 API 密钥。从命令行运行示例。在工作目录中,运行以下命令:
gradle -q run
该示例应执行请求并将响应输出到
STDOUT
。
第 4 步:运行授权请求
在此步骤中,您将修改代码示例,使其不再检索 GoogleDevelopers YouTube 频道的相关信息,而是检索您的 YouTube 频道的相关信息。此请求需要用户授权。
返回到 API 的 channels.list 方法的文档。
在“常见使用情形”部分,点击表格中第三个列表的代码符号。该使用情形是针对“我的频道”调用
list
方法。同样,在全屏 API Explorer 的左侧,您会看到一个参数列表,后面是凭据部分。不过,与您检索 GoogleDevelopers 频道信息的示例相比,此示例有两处变化:
在参数部分中,应将
mine
参数值设置为true
,而不是设置id
参数值。这会指示 API 服务器检索有关当前已通过身份验证的用户的渠道的信息。在凭据部分,下拉菜单应选择 Google OAuth 2.0 选项。
此外,如果您点击显示范围链接,则应选中 https://www.googleapis.com/auth/youtube.readonly 范围。
与上一个示例一样,选择 Java 标签页,复制代码示例,然后将其保存到
src/main/java/ApiExample.java
。从命令行运行示例。在工作目录中,运行以下命令:
gradle -q run
该示例应尝试在默认浏览器中打开一个新窗口或标签页。如果此操作失败,请从终端复制网址,然后在浏览器中手动打开该网址。
如果您尚未登录 Google 账号,系统会提示您登录。如果您登录了多个 Google 账号,系统会要求您选择一个账号用于授权。
点击该按钮,以授予您的应用对代码示例中指定的范围的访问权限。
系统将自动继续执行示例,您可以关闭用于身份验证流程的浏览器标签页。
API 响应应再次输出到
STDOUT
。