Solicitar ámbitos adicionales después de iniciar sesión

Su aplicación puede solicitar alcances adicionales en cualquier momento después de que se hayan otorgado los alcances iniciales. En este caso, solo esos ámbitos adicionales aparecerán en la pantalla de consentimiento del usuario. Su aplicación debe solicitar todos los alcances otorgados anteriormente con estos alcances adicionales para garantizar que su aplicación continúe con todo el acceso que espera.

Antes de que empieces

Debe completar la integración básica de inicio de sesión de Google .

Comprobando qué alcances se han concedido

Para comprobar qué ámbitos ya se han concedido a su aplicación, utilice el grantedScopes propiedad de 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
}

En función de si el usuario ha otorgado o no un determinado alcance, es posible que deba realizar una solicitud de un alcance adicional para admitir una interacción en particular.

Solicitar ámbitos adicionales

Para solicitar ámbitos adicionales, agrega los nuevos ámbitos a la propiedad de scopes de la instancia compartida de GIDSignIn y luego llama al método signIn para solicitar el consentimiento. Por ejemplo, para solicitar acceso de solo lectura a Drive de un usuario:

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];

Puede usar esta técnica si sospecha que los usuarios están evitando iniciar sesión porque su pantalla de consentimiento abruma a los nuevos usuarios, o si cree que los usuarios están confundidos por qué se les solicitan ciertos permisos. En cualquier caso, puede retrasar los ámbitos adicionales y presentarlos justo antes de que sean necesarios.