承認スコープ

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