Java クライアント ライブラリのスタートガイド

Java クライアント ライブラリで Google Photos Library API の使用を開始するには、開発環境にクライアント ライブラリを設定する必要があります。その前に、Google API Console で API を有効にし、OAuth 2.0 クライアント ID を設定して、プロジェクトを設定します。

アプリケーションが Google フォトのユーザーに代わって Google フォトとやり取りします。たとえば、ユーザーの Google フォト ライブラリでアルバムを作成する場合や、ユーザーの Google フォト アカウントにメディア アイテムをアップロードする場合、ユーザーは OAuth 2.0 プロトコルを介してこれらの API リクエストを承認します。

OAuth 2.0 クライアント ID を使用すると、アプリケーション ユーザーはログインと認証を行い、Library API を使用できます。Library API はサービス アカウントをサポートしていません。この API を使用するには、ユーザーは有効な Google アカウントにログインする必要があります。

アプリを設定する

API を有効にする

Library API を使用する前に、プロジェクトで有効にする必要があります。

  1. Google API Console に移動します。
  2. メニューバーで、プロジェクトを選択するか、新しいプロジェクトを作成します。
  3. Google API ライブラリを開くには、ナビゲーション メニューから [API とサービス] > [ライブラリ] を選択します。
  4. 「Google Photos Library API」を検索します。正しい結果を選択して、[有効にする] をクリックします。

OAuth 2.0 クライアント ID をリクエストする

OAuth クライアント ID をリクエストし、アプリケーション用に構成するには、次の手順を行います。この例では、サンプルのように、OAuth フロー全体がサーバーサイドで処理されるアプリケーションを使用します。設定プロセスは、他の実装シナリオによって異なる場合があります。

  1. Google API Console に移動し、プロジェクトを選択します。
  2. メニューから、[API とサービス] > [認証情報] を選択します。
  3. [認証情報] ページで、[認証情報を作成] > [OAuth クライアント ID] をクリックします。
  4. [アプリケーションの種類] を選択します。この例では、アプリケーションの種類はウェブ アプリケーションです。
  5. アプリが Google API へのアクセスを許可するオリジンを次のように登録します。

    1. クライアント ID を識別するため、名前を入力します。
    2. [承認済みの JavaScript 生成元] フィールドに、アプリの生成元を入力します。この項目ではワイルドカードを使用できません。

      複数のオリジンを入力すると、さまざまなプロトコル、ドメイン、サブドメインでアプリを実行できます。入力した URL で OAuth リクエストを開始できます。

      次の例は、ローカル開発用 URL(サンプルでは localhost:8080 を使用)と本番環境用 URL を示しています。

      http://localhost:8080
      https://myproductionurl.example.com
      
    3. [承認済みのリダイレクト URI] フィールドは、OAuth 2.0 サーバーからのレスポンスを受信するエンドポイントです。通常、これには開発環境が含まれ、アプリケーション内のパスを参照します。

      http://localhost:8080/auth/google/callback
      https://myproductionurl.example.com/auth/google/callback
      
    4. [作成] をクリックします。

  1. 表示される OAuth クライアント ダイアログから、クライアント構成を含む JSON ファイルをダウンロードします。クライアントの詳細は、次のもので構成されます。

    • クライアント ID
    • クライアント シークレット

    この JSON ファイルは、このクライアント ライブラリと連携する Java 用 Google 認証ライブラリを設定するために後で使用されます。

Library API にアクセスする公開アプリをリリースする前に、Google によるアプリの審査を受ける必要があります。アプリケーションをテストする際、確認されるまで画面に「未確認アプリ」というメッセージが表示されます。

クライアント ライブラリを設定する

Java クライアント ライブラリは、すべてのバックエンド API 呼び出しを処理し、一般的な API タスクのコードサンプルなど、使いやすいオブジェクトを公開します。まず、依存関係とともに Java 用 Google Photos Library API クライアント ライブラリを GitHub からダウンロードしてインストールします。次に、Java 用の OAuth2 認証情報を設定します。

ダウンロード オプション

クライアント ライブラリをダウンロードする方法はいくつかあります。

  • Gradle の依存関係:

    Gradle でこのライブラリを使用するには、build.gradle ファイルに次の依存関係を追加します。

    repositories {
      mavenCentral()
    }
    dependencies {
      compile 'com.google.photos.library:google-photos-library-client:1.7.3'
    }
    
  • Maven の依存関係:

    Maven でこのライブラリを使用するには、Maven pom.xml ファイルに次の行を追加します。

    <dependency>
      <groupId>com.google.photos.library</groupId>
      <artifactId>google-photos-library-client</artifactId>
      <version>1.7.3</version>
    </dependency>
    
  • リリースをダウンロードする:

    リリースページには、jar ファイルなど、ライブラリ リリースごとに異なるアーティファクトが記載されています。

  • リポジトリのクローンを作成します。

    pull リクエストを送信するなど、このライブラリを変更したり、ライブラリに貢献したりする場合や、サンプルを試したい場合には、このメソッドを使用します。リポジトリのクローンを作成すると、このリポジトリ内のすべてのファイルがダウンロードされます。

    1. コマンド プロンプトで git clone https://github.com/google/java-photoslibrary.git を実行します。
    2. java-photoslibrary ディレクトリが作成されます。このフォルダに移動するには、cd java-photoslibrary を実行します。
    3. IDE で build.gradle ファイルを開くか、コマンド プロンプトで ./gradlew assemble を実行して、プロジェクトをビルドします。使用可能なタスクについては、./gradlew tasks をご覧ください。

Java 用の OAuth2 認証情報を設定する

このクライアント ライブラリは、Java 用 Google 認証ライブラリと連携します。詳しくは、Java 用 Google API クライアント ライブラリで OAuth 2.0 を使用するをご覧ください。

PhotosLibraryClient オブジェクトに PhotoLibrarySettings を作成するときに、CredentialsProvider でクライアントの OAuth 構成を指定します。

サンプルを試す

Java クライアント ライブラリを使用して最初の API 呼び出しを行うには、次のコードを試してください。

// Set up the Photos Library Client that interacts with the API
PhotosLibrarySettings settings =
     PhotosLibrarySettings.newBuilder()
    .setCredentialsProvider(
        FixedCredentialsProvider.create(/* Add credentials here. */)) 
    .build();

try (PhotosLibraryClient photosLibraryClient =
    PhotosLibraryClient.initialize(settings)) {

    // Create a new Album  with at title
    Album createdAlbum = photosLibraryClient.createAlbum("My Album");

    // Get some properties from the album, such as its ID and product URL
    String id = album.getId();
    String url = album.getProductUrl();

} catch (ApiException e) {
    // Error during album creation
}

GitHub には、試すことができる他のサンプルがあります。