Java 快速入门

本快速入门指南将介绍如何设置向 YouTube Data API 发出请求的简单 Java 命令行应用。本快速入门实际上介绍了如何发出两个 API 请求:

  1. 您将使用用于标识您的应用的 API 密钥来检索有关 GoogleDevelopers YouTube 频道的信息。
  2. 您将使用 OAuth 2.0 客户端 ID 提交授权请求,以检索关于您自己的 YouTube 频道的信息。

前提条件

如需运行本快速入门,您需要:

第 1 步:设置项目和凭据

API 控制台中创建或选择项目。在 API 控制台中为您的项目完成以下任务:

  1. 库面板中,搜索 YouTube Data API v3。点击进入该 API 的列表,确保已为您的项目启用该 API。

  2. “凭据”面板中,创建两个凭据:

    1. 创建 API 密钥 您将使用 API 密钥发出不需要用户授权的 API 请求。例如,您无需用户授权即可检索公开 YouTube 频道的相关信息。

    2. 创建 OAuth 2.0 客户端 ID 将应用类型设为其他。对于需要用户授权的请求,您需要使用 OAuth 2.0 凭据。例如,您需要获得用户授权才能检索当前经过身份验证的用户的 YouTube 频道的相关信息。

      下载包含 OAuth 2.0 凭据的 JSON 文件。该文件的名称类似于 client_secret_CLIENTID.json,其中 CLIENTID 是项目的客户端 ID。

第 2 步:准备项目

如需准备 Gradle 项目,请完成以下步骤:

  1. 在工作目录中,运行以下命令以创建新的项目结构:

    $ gradle init --type basic
    $ mkdir -p src/main/java src/main/resources
    
  2. 将创建 OAuth 2.0 客户端 ID 后下载的 JSON 文件移动到工作目录下的 src/main/resources 目录中,并将该文件重命名为 client_secret.json

  3. 打开工作目录中的 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'
    }
    
  4. build.gradle 文件中,您需要将 REVISIONCL_VERSION 变量替换为 YouTube Data API 的客户端库文档中的两个值。下面的屏幕截图显示了 YouTube Analytics API 的文档,显示了这两个变量在页面上的显示位置。

    JavaDoc 参考的屏幕截图,显示了如何查找“REVISION”和“CL_VERSION”变量的值

第 3 步:设置和运行示例

使用侧边栏中的 API Explorer 微件获取示例代码,以检索有关 GoogleDevelopers YouTube 频道的信息。此请求使用 API 密钥来标识您的应用,不需要用户授权或运行示例的用户获得任何特殊权限。

  1. 打开 API 的 channels.list 方法文档。
  2. 在该页的“常见用例”部分中,有一个表格介绍了该方法的几种常见用法。表格中的第一个商品详情是按频道 ID 列出的结果。

    点击第一个列表的代码符号,即可打开并填充全屏 API Explorer。

    用于标识渠道代码列表文档中表格内代码符号链接的位置的图片。该图片的替代文本会将图片标识为代码符号,并指定与该链接关联的用例。

  3. 全屏 API Explorer 的左侧显示以下内容:

    1. Request parameters 标头下方,列出了该方法支持的参数。应设置 partid 参数值。id 参数值 UC_x5XG1OV2P6uZZ5FSM9Ttw 是 GoogleDevelopers YouTube 频道的 ID。

    2. 参数下方有一个名为凭据的部分。该部分中的下拉菜单应该会显示值 API key。默认情况下,API Explorer 使用演示凭据,以便更轻松地上手使用。但您将使用自己的 API 密钥在本地运行示例。

      此图片显示了全屏 API Explorer 中的“凭据”和已选择“API 密钥”选项的下拉菜单。

  4. 全屏 API Explorer 的右侧显示了包含不同语言的代码示例的标签页。选择 Java 标签页。

  5. 复制代码示例并将其保存到名为 src/main/java/ApiExample.java 的文件中。 每个示例都使用相同的类名称 (ApiExample),因此您无需修改 build.gradle 文件即可运行不同的示例。

  6. 在下载的示例中,找到 YOUR_API_KEY 字符串并将其替换为您在本快速入门第 1 步中创建的 API 密钥。

  7. 从命令行运行示例。在工作目录中,运行以下命令:

    gradle -q run

  8. 该示例应执行该请求,并将响应输出到 STDOUT

第 4 步:运行授权请求

在此步骤中,您将修改代码示例,使其检索有关您的 YouTube 频道的信息,而不是检索 GoogleDevelopers YouTube 频道。此请求需要获得用户授权。

  1. 返回到 API 的 channels.list 方法的文档。

  2. 在“常见用例”部分中,点击表中第三个列表的代码符号。该用例是针对“my channel”调用 list 方法。

  3. 同样,在全屏 API Explorer 的左侧,您会看到参数列表和凭据部分。不过,在检索有关 GoogleDevelopers 渠道的信息的示例中,有两项更改:

    1. 在参数部分,应将 mine 参数值设为 true,而不是设置 id 参数值。此命令指示 API 服务器检索当前已通过身份验证的用户的通道的相关信息。

    2. 凭据部分,下拉菜单中应选择 Google OAuth 2.0 选项。

      此外,如果您点击 Show scope 链接,则应勾选 https://www.googleapis.com/auth/youtube.readonly 范围。

      显示全屏 API Explorer 中的范围和已选择“Google OAuth 2.0”凭据使用选项的图片。

  4. 与上一个示例一样,选择 Java 标签页,复制代码示例并将其保存到 src/main/java/ApiExample.java

  5. 从命令行运行示例。在工作目录中,运行以下命令:

    gradle -q run

  6. 该示例应尝试在默认浏览器中打开一个新窗口或标签页。如果失败,请从终端复制网址并手动打开网址。

    如果您尚未登录 Google 帐号,系统会提示您登录。如果您登录了多个 Google 帐号,系统会要求您选择一个帐号用于授权。

  7. 点击按钮以授予应用对代码示例中指定的范围的访问权限。

  8. 系统会自动继续运行示例,您可以关闭用于身份验证流程的浏览器标签页。

    API 响应应会再次输出到 STDOUT

补充阅读材料