Gestion des autorisations refusées

Lorsqu’une personne crée des comptes ou se connecte à votre app à l’aide de Facebook Login, elle a la possibilité d’accorder les autorisations que vous demandez. Cependant, elle peut également refuser toutes les autorisations, à l’exception de celle concernant son profil public. Elle peut choisir cette option si elle hésite à partager ces informations avec votre app ou si elle ne comprend pas comment ces informations vont être utilisées pour améliorer son expérience.

Lorsqu’une personne choisit de refuser les autorisations, il est important que votre app respecte son choix et continue à lui offrir une expérience agréable.

En général, votre app peut réagir de l’une des trois façons suivantes :

  1. poursuivre sans les informations ;
  2. expliquer pourquoi vous avez besoin des informations et les redemander ;
  3. recueillir les informations vous-même.

Poursuivre sans les informations

Dans certaines circonstances, il se peut que votre app n’ait pas besoin d’une autorisation demandée pour fonctionner. Dans ce cas, la meilleure chose à faire est de respecter le refus et de continuer à diriger la personne vers l’app.

Dans l’exemple ci-dessous, l’application Flick Finder aurait pu recommander de meilleurs films si elle avait accès à l’autorisation user_likes. Or, puisque la personne a refusé l’autorisation, Flick Finder formule simplement des recommandations à caractère plus général.

Cette option est la plus simple et elle respecte le choix des personnes qui choisissent de refuser certaines autorisations.

Expliquer pourquoi et redemander les informations

Les gens peuvent refuser une autorisation, car ils ne savent pas pourquoi votre app a besoin de ces informations. Dans ce cas, votre app peut afficher une boîte de dialogue qui explique pourquoi vous avez besoin des informations et comment vous allez les utiliser pour améliorer l’expérience.

Dans l’exemple ci-dessous, Flick Finder affiche une boîte de dialogue qui explique que si l’utilisateur fournit une adresse e-mail, l’app peut le tenir informé lorsque de nouveaux films sont disponibles. Le bouton « Add Email » (Ajouter une adresse e-mail) permet de renvoyer la personne vers le processus Facebook Login pour qu’elle puisse accorder l’autorisation email.

Notez que dans cet exemple, la personne a toujours la possibilité de ne pas accorder l’autorisation email.

Il est possible d’utiliser cette stratégie pour une autorisation qui est souhaitable, voire essentielle au fonctionnement de votre app.

Collecter les informations vous-même

Certaines informations peuvent être suffisamment simples pour être recueillies par vous-même.

Dans cet exemple, Flick Finder veut collecter la date de naissance d’une personne pour pouvoir recommander des films adaptés à son âge. Si une personne a refusé d’indiquer sa date de naissance lorsqu’elle s’est connectée avec Facebook, Flick Finder peut toujours créer un endroit où collecter cette information dans l’app, séparément du processus Facebook Login. Nous vous recommandons d’effectuer cette opération lorsque la personne a eu le temps de se familiariser avec votre app. De cette façon, elle comprend mieux comment l’autorisation améliorera son expérience.

Vous pouvez par exemple collecter les informations suivantes de cette façon : user_hometown, user_location, user_birthday, voire email.

Détection des autorisations refusées

Lorsque des personnes refusent des autorisations dans le cadre d’un processus Facebook Login, nous aidons votre app à détecter facilement ce comportement et à réagir à l’aide de l’une des stratégies susmentionnées.

SDK Android

Sur les appareils Android, vous pouvez appeler la méthode getDeclinedPermissions sur l’objet AccessToken dans le SDK Facebook pour Android.

SDK iOS

Sur les appareils iOS, vous pouvez appeler la méthode [FBSDKAccessToken declinedPermissions] dans le SDK Facebook pour iOS.

SDK JavaScript

Pour détecter les autorisations refusées, vous pouvez appeler l’arête permissions sur l’objet User de l’API Graph. Vous pouvez collecter toute autorisation refusée par une itération de la réponse :

FB.api('/me/permissions', function(response) {
  var declined = [];
  for (i = 0; i < response.data.length; i++) { 
    if (response.data[i].status == 'declined') {
      declined.push(response.data[i].permission)
    }
  }
  alert(declined.toString())
});

API

Pour détecter les autorisations refusées, vous pouvez appeler l’arête permissions sur l’objet User de l’API Graph :

GET https://graph.facebook.com/me/permissions?access_token=USER_ACCESS_TOKEN

Cela produit une réponse sous la forme suivante :

{ "data": [
    {
      "permission": "user_birthday",
      "status": "granted"
    },
    {
      "permission": "public_profile",
      "status": "granted"
    },
    {
      "permission": "email",
      "status": "declined"
    }
]}

Cela indique à votre app que la personne a accordé les autorisations user_birthday et public_profile, mais a choisi de refuser l’autorisation email.

Résumé

Une gestion avec délicatesse des autorisations refusées fait partie de la stratégie visant à offrir aux gens une expérience agréable avec Facebook Login.

Si vous appliquez l’une des stratégies susmentionnées, vous pouvez vous assurer que les personnes qui téléchargent et installent votre app peuvent se connecter sans vivre une expérience perturbante ou frustrante, qui peut avoir un impact négatif sur la réputation de votre app et son classement dans la boutique d’applications.