このクイックスタート ガイドでは、YouTube Data API にリクエストを送信する簡単な Java コマンドライン アプリケーションを設定する方法について説明します。このクイックスタートでは、次の 2 つの API リクエストを行います。
- API キーを使用してアプリケーションを識別し、GoogleDevelopers の YouTube チャンネルに関する情報を取得します。
- OAuth 2.0 クライアント ID を使用して、独自の YouTube チャンネルに関する情報を取得する承認済みリクエストを送信します。
Prerequisites
このクイックスタートを実行するには、以下が必要です。
- 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 Analytics API のドキュメントを示しており、2 つの変数がページ上で表示される位置を示しています。
ステップ 3: サンプルを設定して実行する
サイドパネルの API Explorer ウィジェットを使用して、GoogleDevelopers の YouTube チャンネルに関する情報を取得するサンプルコードを入手します。このリクエストでは、API キーを使用してアプリケーションを識別します。ユーザー認証や、サンプルを実行しているユーザーの特別な権限は必要ありません。
- API の channels.list メソッドのドキュメントを開きます。
そのページの「一般的なユースケース」セクションには、メソッドの一般的ないくつかの使用方法が説明されている表があります。表の最初のリストは、チャネル ID による結果のリスティングです。
最初のリスティングのコード記号をクリックして、API Explorer を全画面表示し、データを入力します。
全画面表示の API Explorer の左側には、次の内容が表示されます。
Request パラメータ ヘッダーの下に、メソッドがサポートするパラメータのリストがあります。
part
とid
のパラメータ値を設定する必要があります。id
パラメータ値UC_x5XG1OV2P6uZZ5FSM9Ttw
は、GoogleDevelopers YouTube チャンネルの ID です。パラメータの下に Credentials セクションがあります。このセクションのプルダウン メニューに「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 番目のリストでコード記号をクリックします。このユースケースでは、「my channel」の
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
に出力されます。