スコープの変更によるユーザーへの影響を最小限に抑える手順
- アプリケーションで認証済みユーザーのメールアドレスが必要な場合、以前は
profile.emails.read
を使用していた場合は、代わりにemail
を使用してください。 - 承認済みの適格性確認リクエストで
profile.emails.read
の承認を得る。検証のために送信するにはどうすればよいですか?を参照してください。 - 削除するスコープの以前のユーザー トークンを取り消すか、アプリケーションへのアクセス権を完全に削除します。たとえば、
profile.emails.read
アクセス権を持つトークンは取り消す必要があります。ユーザーがアプリを使用しているときに取り消しを適用することをおすすめします。これにより、ユーザーの同意をすぐに得ることができます。 profile.emails.read
を指定せずに、新しいスコープ(email
など)で再度同意するようユーザーに促します。- 段階的に廃止されるスコープを Google API の OAuth 同意画面の構成から削除します。
アプリを Google+ ログインから Google ログインに移行するには、ログイン ボタン、リクエストされたスコープ、Google からプロフィール情報を取得する手順を更新する必要があります。詳しい手順については、Android での Google ログインに関するドキュメントをご覧ください。
ログインボタンを更新する際は、G+ に言及したり、赤色を使用しないでください。更新されたブランド ガイドラインに準拠する。
ほとんどの Google+ ログイン アプリケーションは、plus.login
、plus.me
、plus.profile.emails.read
のスコープの組み合わせをリクエストしていました。DEFAULT_SIGN_IN
オプションで GoogleSignInOptions.Builder
を使用すると、ユーザーの名前とプロフィール写真を含む profile
スコープが自動的にリクエストされます。ユーザーのメールアドレスも取得する場合は、Google ログイン オプションを作成するときに .requestEmail()
を呼び出す必要があります。
Google+ ログインを実装した多くのデベロッパーは、コードフローを使用していました。つまり、Android、iOS、または JavaScript アプリが Google から OAuth 認可コードを取得し、クライアントがそのコードをクロスサイト リクエストのなりすまし防止とともにサーバーに送り返します。サーバーはコードを検証し、更新トークンとアクセス トークンを取得して、people.get
API からユーザー プロファイル情報を取得します。
そのため、ID トークンをリクエストし、クライアントからサーバーに ID トークンを送信することをおすすめします。ID トークンにはクロスサイト偽造防止機能が組み込まれており、サーバー上で静的に検証することもできます。これにより、Google のサーバーからユーザー プロファイル情報を取得するための追加の API 呼び出しを回避できます。手順に沿ってサーバー上で ID トークンを検証します。
それでもコードフローを使用してプロフィール情報を取得する場合は、サーバー側でアクセス トークンを取得したら、ログイン 検出ドキュメントで指定されている userinfo
エンドポイントからユーザー プロフィール情報を取得する必要があります。API レスポンスは Google+ プロフィールのレスポンスとは異なる形式になっているため、解析を新しい形式に更新する必要があります。
GoogleAuthUtil.getToken
または Plus.API
を使用している場合は、セキュリティとユーザー エクスペリエンスを向上させるため、最新の Sign-In API に移行する必要があります。