認証スコープ

Google Photos Library API には、メディア アイテムやアルバムへのアクセスに使用される複数のスコープが含まれています。さまざまな呼び出しから返されるレスポンスは、デベロッパーがリクエストしたスコープによって異なります。

アプリケーションが Google Photos Library API に送信するリクエストにはすべて、認証トークンが含まれている必要があります。このトークンは Google でアプリケーションを識別するためにも使用されます。

認証プロトコルについて

リクエストを承認するために、アプリケーションは OAuth 2.0 を使用する必要があります。これ以外の承認プロトコルはサポートされていません。アプリケーションで「Google でログイン」を使用している場合、承認手続きの一部が自動化されます。

OAuth 2.0 を使ったリクエストの承認

Google Photos Library API へのすべてのリクエストは、認証済みのユーザーによって承認される必要があります。

OAuth 2.0 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。

  1. アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
  2. Google API Console で Google Photos Library API を有効にします。(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
  3. アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
  4. データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
  5. ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
  6. アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
  7. Google によりリクエストとトークンが有効であると判断されると、リクエストしたデータが返されます。

プロセスによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。

Google Photos Library API の OAuth 2.0 のスコープ情報は次のとおりです。

範囲 意味
https://www.googleapis.com/auth/photoslibrary.readonly

読み取り専用アクセス権

ライブラリとすべてのアルバムのアイテムを一覧表示する、すべてのメディア アイテムにアクセスする、ユーザーが所有するアルバム(共有されているものを含む)を一覧表示する。

ユーザーが共有したアルバムの場合、共有プロパティは、photoslibrary.sharing スコープも付与されている場合にのみ返されます。

アルバムの shareInfo プロパティと mediaItemscontributorInfo プロパティは、photoslibrary.sharing スコープも付与されている場合にのみ使用できます。

詳しくは、メディアの共有をご覧ください。

https://www.googleapis.com/auth/photoslibrary.appendonly

書き込みアクセス権のみ

バイトのアップロード、メディア アイテムの作成、アルバムの作成、エンリッチメントの追加を行うためのアクセス権。ユーザーのライブラリやアプリで作成したアルバムにのみ、新しいメディアを作成できます。

https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata

デベロッパーによって作成されたメディア アイテムとアルバムへの読み取りアクセス権。詳しくは、メディア アイテムにアクセスするライブラリのコンテンツ、アルバム、メディア アイテムを一覧表示するをご覧ください。

photoslibrary.appendonly スコープとともにリクエストされることを前提としています。

https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata

編集権限のみ。

デベロッパーが作成したアルバムとメディア アイテムの詳細を変更するためのアクセス権:

https://www.googleapis.com/auth/photoslibrary.sharing

通話の共有へのアクセス

アルバムの作成、共有、メディア アイテムのアップロード、共有アルバムへの参加を行うためのアクセス権。

https://www.googleapis.com/auth/photoslibrary

(非推奨)。増分承認で必要なスコープへのアクセスのみをリクエストする。

photoslibrary.appendonly スコープと photoslibrary.readonly スコープの両方に対するアクセス権。photoslibrary.sharing または photoslibrary.edit のアクセス権は含まれません。

OAuth 2.0 を使用してアクセスをリクエストする場合、アプリケーションを登録したときに Google から提供された情報(クライアント ID やクライアント シークレットなど)に加えて、スコープ情報が必要になります。

ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。これらのライブラリはさまざまなプログラミング言語で用意されています。詳細については、ライブラリとサンプルのページをご覧ください。

スコープの選択

原則として、できる限り制限の厳しいスコープを選択し、アプリに必要のないスコープをリクエストしないようにします。ユーザーは、明確に説明された限定的なスコープへのアクセス権をより簡単に付与できます。ユーザーは、アプリを信頼してその情報が必要な理由を理解しない限り、メディアへの幅広いアクセス権を付与することをためらう可能性があります。

スコープの増分リクエスト

認可のベスト プラクティスに従い、アプリケーションは必要に応じてスコープをリクエストする必要があります。ログイン時にアプリケーションのすべてのスコープを事前にリクエストすることは避けてください。代わりに、正当な理由を示して、コンテキスト内でリクエストを行います。UX ガイドラインとベスト プラクティスに従って、ユーザーのデータで何をするか、アクセス権を付与することでユーザーにどのようなメリットがあるかを明確に説明しながら、同意を得て同意します。

サービス アカウント

Library API はサービス アカウントに対応していません。アプリケーションでは、利用可能な OAuth 2.0 フロー(ウェブサーバー アプリケーション用の OAuth 2.0 やモバイルアプリやデスクトップ アプリ用の OAuth 2.0 など)を使用する必要があります。