認可スコープ

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 フローを使用する必要があります。