このクイックスタート ガイドでは、YouTube Data API にリクエストを行うシンプルな Java コマンドライン アプリケーションを設定する方法について説明します。このクイックスタートでは、実際には 2 つの API リクエストを行う方法について説明します。
- アプリケーションを識別する API キーを使用して、GoogleDevelopers YouTube チャンネルに関する情報を取得します。
- OAuth 2.0 クライアント ID を使用して、自分の YouTube チャンネルに関する情報を取得する承認済みリクエストを送信します。
前提条件
このクイックスタートを実行するには、次のものが必要です。
- Java 1.7 以降。
- Gradle 2.3 以降。
- インターネット アクセスとウェブブラウザ。
- Google アカウント
ステップ 1: プロジェクトと認証情報を設定する
API Console でプロジェクトを作成または選択します。プロジェクトの API Console で次のタスクを完了します。
ライブラリ パネルで、YouTube Data API v3 を検索します。その API のリストをクリックし、プロジェクトで API が有効になっていることを確認します。
認証情報パネルで、次の 2 つの認証情報を作成します。
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 のクライアント ライブラリのドキュメントの 2 つの値に置き換える必要があります。次のスクリーンショットは、YouTube アナリティクス API のドキュメントを示しています。このスクリーンショットでは、ページ上の 2 つの変数が表示されている場所を確認できます。
ステップ 3: サンプルを設定して実行する
サイドパネルの API Explorer ウィジェットを使用して、GoogleDevelopers YouTube チャンネルに関する情報を取得するためのサンプルコードを取得します。このリクエストでは、API キーを使用してアプリケーションを識別します。ユーザー認証や、サンプルを実行するユーザーからの特別な権限は必要ありません。
- API の channels.list メソッドのドキュメントを開きます。
このページの「一般的なユースケース」セクションには、このメソッドの一般的な使用方法を説明する表があります。表の最初のリストは、チャンネル ID で結果を一覧表示するためのものです。
最初の一覧のコード記号をクリックして、全画面表示の API Explorer を開いて入力します。
全画面表示の API Explorer の左側には、次のものが表示されます。
[リクエスト パラメータ] ヘッダーの下に、メソッドがサポートするパラメータのリストが表示されます。
part
パラメータとid
パラメータの値を設定する必要があります。id
パラメータ値UC_x5XG1OV2P6uZZ5FSM9Ttw
は、GoogleDevelopers YouTube チャンネルの ID です。パラメータの下に、[認証情報] というセクションがあります。このセクションのプルダウン メニューには、[API キー] という値が表示されます。API 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 メソッドのドキュメントに戻ります。
[一般的なユースケース] セクションで、表の 3 番目のリストのコード記号をクリックします。このユースケースでは、「マイチャンネル」の
list
メソッドを呼び出します。全画面表示の API Explorer の左側には、パラメータのリストと [認証情報] セクションが表示されます。ただし、GoogleDevelopers チャンネルに関する情報を取得した例とは 2 つの変更点があります。
パラメータ セクションで、
id
パラメータ値が設定される代わりに、mine
パラメータ値がtrue
に設定される必要があります。これにより、API サーバーは現在認証されているユーザーのチャンネルに関する情報を取得します。[認証情報] セクションのプルダウン メニューで、[Google OAuth 2.0] オプションが選択されていることを確認します。
また、[スコープを表示] リンクをクリックすると、https://www.googleapis.com/auth/youtube.readonly スコープがオンになっているはずです。
前の例と同様に、[Java] タブを選択し、コードサンプルをコピーして
src/main/java/ApiExample.java
に保存します。コマンドラインからサンプルを実行します。作業ディレクトリで、次のコマンドを実行します。
gradle -q run
サンプルは、デフォルトのブラウザで新しいウィンドウまたはタブを開こうとします。失敗した場合は、ターミナルから URL をコピーして、ブラウザで手動で開きます。
Google アカウントにログインしていない場合は、ログインを求めるメッセージが表示されます。複数の Google アカウントにログインしている場合は、承認に使用するアカウントを 1 つ選択するよう求められます。
ボタンをクリックして、コードサンプルで指定されたスコープへのアクセスをアプリケーションに許可します。
サンプルは自動的に続行されます。認証フローに使用したブラウザタブを閉じてもかまいません。
API レスポンスが再び
STDOUT
に出力されます。