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

サインイン後に追加のスコープを要求する

アプリは、最初のスコープが付与された後、いつでも追加のスコープをリクエストできます。この場合、それらの追加のスコープのみがユーザーの同意画面に表示されます。アプリは、以前に付与されたすべてのスコープとこれらの追加スコープをリクエストして、アプリが期待するすべてのアクセスを続行できるようにする必要があります。

あなたが始める前に

基本的なGoogleサインイン統合を完了する必要があります。

付与されているスコープの確認

すでにあなたのアプリに付与されているスコープを確認するには、使用grantedScopesのプロパティGIDGoogleUser

NSString *driveScope = @“https://www.googleapis.com/auth/drive.readonly”;
GIDGoogleUser *user = [GIDSignIn sharedInstance].currentUser;
// Check if the user has granted the Drive scope
if (![user.grantedScopes containsObject:driveScope]) {
  // request additional drive scope
}

特定のスコープがユーザーによって付与されているかどうかに基づいて、特定の対話をサポートするために、追加のスコープを要求する必要がある場合があります。

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

追加のスコープ、APPEND新しいスコープを要求するには、 scopesのプロパティGIDSignInインスタンスを共有し、そして呼び出しsignIn要求の同意に方法を。たとえば、ユーザーのドライブへの読み取り専用アクセスを要求するには、次のようにします。

NSArray *currentScopes = [GIDSignIn sharedInstance].scopes;
[GIDSignIn sharedInstance].scopes = [currentScopes arrayByAddingObject:driveScope];
// Set loginHint to skip the account chooser.
[GIDSignIn sharedInstance].loginHint = user.profile.email;

[[GIDSignIn sharedInstance] signIn];

同意画面が新規ユーザーを圧倒しているためにユーザーがサインインを回避していると思われる場合、またはユーザーが特定のアクセス許可を求められている理由が混乱していると思われる場合は、この手法を使用できます。いずれの場合も、追加のスコープを遅らせて、必要になる直前に提示することができます。