このページは Cloud Translation API によって翻訳されました。
Switch to English

追加の権限をリクエストする

ユーザーデータまたはその他のリソースにアクセスするためのユーザー権限を要求する場合、最初の要求ですべてのスコープを事前に要求するか、増分承認を使用して必要な場合にのみスコープを要求できます。増分認証を使用すると、アプリは最初にアプリの起動に必要なスコープのみをリクエストし、次にユーザーへのリクエストの理由を特定するコンテキストで、新しい権限が必要になると追加のスコープをリクエストします。

たとえば、アプリでユーザーが音楽のプレイリストをGoogleドライブに保存できるとします。アプリはログイン時に基本的なユーザー情報をリクエストできます。その後、ユーザーが最初のプレイリストを保存する準備ができたら、Googleドライブの権限のみをリクエストします。

同意画面が圧倒的であるためにユーザーがサインインしていないと思われる場合、またはユーザーが特定のアクセス許可を求められている理由について混乱している場合は、この手法を使用してください。次の手順はWeb向けであり、クライアント側のサインインボタンを追加する手順から派生しています。Google2.0サインインボタンの作成。 Webの増分認証の詳細については、 OAuth2.0のドキュメントをご覧ください。

追加のスコープをリクエストする

サインイン時に、アプリは「ベース」スコープを要求します。これは、サインインスコープprofileと、アプリが操作に必要なその他の初期スコープで構成されます。その後、ユーザーが追加のスコープを必要とするアクションを実行する場合、アプリはそれらの追加のスコープを要求し、ユーザーは同意画面から新しいスコープのみを承認します。

ステップ1:基本スコープを要求する

Googleサインインを初期化するときに、ベーススコープprofileリクエストします。この手順は、Google2.0サインインボタンの作成に含まれています

auth2 = gapi.auth2.init({
    client_id: 'CLIENT_ID.apps.googleusercontent.com',
    cookiepolicy: 'single_host_origin', /** Default value **/
    scope: 'profile' });                /** Base scope **/

ステップ2:追加のスコープをリクエストする

追加のスコープが必要な場合は、追加するスコープを使用してオプションビルダーを作成し、 user.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);呼び出してスコープを要求しますuser.grant({scope: [OPTIONS BUILDER]}).then(successFunction, failFunction);

const option = new gapi.auth2.SigninOptionsBuilder();
option.setScope('email https://www.googleapis.com/auth/drive');

googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
    function(success){
      console.log(JSON.stringify({message: "success", value: success}));
    },
    function(fail){
      alert(JSON.stringify({message: "fail", value: fail}));
    });