Google Photos Library API には、メディア アイテムやアルバムへのアクセスに使用される複数のスコープが含まれています。さまざまな呼び出しから返されるレスポンスは、デベロッパーがリクエストしたスコープによって異なります。
アプリケーションが Google Photos Library API に送信するリクエストにはすべて、認証トークンが含まれている必要があります。このトークンは Google でアプリケーションを識別するためにも使用されます。
認証プロトコルについて
リクエストを承認するために、アプリケーションは OAuth 2.0 を使用する必要があります。これ以外の承認プロトコルはサポートされていません。アプリケーションで「Google でログイン」を使用している場合、承認手続きの一部が自動化されます。
OAuth 2.0 を使ったリクエストの承認
Google Photos Library API へのすべてのリクエストは、認証済みのユーザーによって承認される必要があります。
OAuth 2.0 の承認プロセス(「フロー」)の詳細は開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。
- アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google API Console で Google Photos Library API を有効にします。(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
- アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
- アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
- Google によりリクエストとトークンが有効であると判断されると、リクエストしたデータが返されます。
プロセスによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。
Google Photos Library API の OAuth 2.0 のスコープ情報は次のとおりです。
範囲 | 意味 |
---|---|
https://www.googleapis.com/auth/photoslibrary.readonly |
ライブラリとすべてのアルバムのアイテムを一覧表示する、すべてのメディア アイテムにアクセスする、ユーザーが所有するアルバム(共有されているものを含む)を一覧表示する。 ユーザーが共有したアルバムの場合、共有プロパティは、 アルバムの 詳しくは、メディアの共有をご覧ください。 |
https://www.googleapis.com/auth/photoslibrary.appendonly |
バイトのアップロード、メディア アイテムの作成、アルバムの作成、エンリッチメントの追加を行うためのアクセス権。ユーザーのライブラリやアプリで作成したアルバムにのみ、新しいメディアを作成できます。 |
https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata |
デベロッパーによって作成されたメディア アイテムとアルバムへの読み取りアクセス権。詳しくは、メディア アイテムにアクセスするとライブラリのコンテンツ、アルバム、メディア アイテムを一覧表示するをご覧ください。
|
https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata |
編集権限のみ。 デベロッパーが作成したアルバムとメディア アイテムの詳細を変更するためのアクセス権: |
https://www.googleapis.com/auth/photoslibrary.sharing |
アルバムの作成、共有、メディア アイテムのアップロード、共有アルバムへの参加を行うためのアクセス権。 |
https://www.googleapis.com/auth/photoslibrary |
(非推奨)。増分承認で必要なスコープへのアクセスのみをリクエストする。
|
OAuth 2.0 を使用してアクセスをリクエストする場合、アプリケーションを登録したときに Google から提供された情報(クライアント ID やクライアント シークレットなど)に加えて、スコープ情報が必要になります。
ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。これらのライブラリはさまざまなプログラミング言語で用意されています。詳細については、ライブラリとサンプルのページをご覧ください。
スコープの選択
原則として、できる限り制限の厳しいスコープを選択し、アプリに必要のないスコープをリクエストしないようにします。ユーザーは、明確に説明された限定的なスコープへのアクセス権をより簡単に付与できます。ユーザーは、アプリを信頼してその情報が必要な理由を理解しない限り、メディアへの幅広いアクセス権を付与することをためらう可能性があります。
スコープの増分リクエスト
認可のベスト プラクティスに従い、アプリケーションは必要に応じてスコープをリクエストする必要があります。ログイン時にアプリケーションのすべてのスコープを事前にリクエストすることは避けてください。代わりに、正当な理由を示して、コンテキスト内でリクエストを行います。UX ガイドラインとベスト プラクティスに従って、ユーザーのデータで何をするか、アクセス権を付与することでユーザーにどのようなメリットがあるかを明確に説明しながら、同意を得て同意します。
サービス アカウント
Library API はサービス アカウントに対応していません。アプリケーションでは、利用可能な OAuth 2.0 フロー(ウェブサーバー アプリケーション用の OAuth 2.0 やモバイルアプリやデスクトップ アプリ用の OAuth 2.0 など)を使用する必要があります。