Tokens d’accès pour les technologies Meta

Un token d’accès est une chaîne opaque qui identifie un utilisateur ou une utilisatrice, une application ou une Page, et que l’application peut utiliser pour passer des appels à l’API Graph. Le token contient notamment sa date d’expiration et le nom de l’application qui l’a généré. La plupart des appels d’API sur les applications Meta doivent contenir un token d’accès, en raison des contrôles de confidentialité. Il existe différents types de tokens d’accès correspondant à divers cas d’utilisation, et différentes méthodes pour obtenir ces tokens d’accès.

Type de token d’accèsDescription

Token d’accès d’application

Un token d’accès d’application sert à accéder aux paramètres des applications et à les modifier. Pour les générer, vous devez disposer d’une clé secrète Meta. Les tokens d’accès seront ensuite utilisés pendant les appels destinés à changer les paramètres qui s’appliquent à l’ensemble de l’application. Les tokens d’accès d’application s’obtiennent au moyen d’un appel de serveur à serveur.

Token client

Un token client sert à accéder aux API au niveau des applications. Vous pouvez ensuite l’intégrer aux applications natives ou de bureau afin d’identifier votre application. Le token client n’est pas un identifiant secret. En effet, il est intégré aux applications. Votre token client se trouve dans votre Espace App Meta.

Token d’accès de Page

Un token d’accès de Page permet de lire, d’ajouter et de modifier des données appartenant à une Page Facebook. Pour obtenir un token d’accès de Page, vous devez préalablement obtenir un token d’accès utilisateur·ice, puis l’utiliser pour obtenir un token d’accès de Page via l’API Graph.

Token d’accès d’utilisateur·ice système

Utilisez les tokens d’accès utilisateur·ice système si votre application réalise des actions programmatiques automatisées sur les objets publicitaires ou les Pages de votre clientèle professionnelle, sans que cela implique une entrée par un utilisateur ou une utilisatrice de l’application ou requière une nouvelle authentification à une date ultérieure.

Token d’accès utilisateur·ice

Utilisez des tokens d’accès utilisateur·ice si votre application exécute des actions en temps réel basées sur les entrées de l’utilisateur·ice. Ce type de token d’accès est nécessaire chaque fois que l’application appelle une API pour lire, ajouter ou modifier des données Facebook d’une personne en son nom. Les tokens d’accès utilisateur·ice s’obtiennent généralement par une boîte de dialogue Login demandant à l’utilisateur·ice d’autoriser votre application à obtenir ces tokens.

Tokens d’accès utilisateur·ice

Bien que chaque plateforme génère des tokens d’accès au moyen de différentes API, toutes les plateformes suivent la même stratégie de base pour obtenir des tokens utilisateur·ice :

Tokens à court terme et tokens à long terme

Les tokens d’accès utilisateur·ice se présentent sous deux formes : les tokens de courte durée et ceux de longue durée. Généralement, les tokens de courte durée sont valides pendant une heure ou deux, tandis que les tokens de longue durée sont valides pendant environ 60 jours. Notez que la durée de vie d’un token peut varier sans préavis ou expirer de manière anticipée. Pour en savoir plus, consultez Gestion des erreurs.

Les tokens d’accès générés par une connexion web sont de courte durée, mais vous pouvez les convertir en tokens de longue durée en passant un appel d’API côté serveur avec votre clé secrète.

Les apps mobiles qui utilisent les SDK Facebook pour iOS et Android obtiennent des tokens de longue durée par défaut.

Les apps disposant d’un accès standard à l’API Marketing de Facebook reçoivent des tokens d’accès de longue durée qui n’ont pas de date d’expiration. Ces tokens peuvent toutefois faire l’objet d’une invalidation pour d’autres raisons, mais ils n’expireront pas pour des raisons de durée uniquement. Cela est aussi valable pour les tokens d’accès des utilisateurs système dans Business Manager.

Les tokens sont portables

La portabilité est une caractéristique essentielle de la plupart des tokens d’accès. Néanmoins, Apple n’autorise pas le déplacement de tokens vers des serveurs. Autrement, une fois que vous avez obtenu un token d’accès, vous pouvez l’utiliser pour passer des appels depuis un client mobile, un navigateur web ou votre serveur vers les serveurs de Facebook. Si vous obtenez un token par l’intermédiaire d’un client ou d’une cliente, vous pouvez le transférer vers votre serveur et l’utiliser dans les appels de serveur à serveur. Si vous obtenez un token par un appel de serveur, vous pouvez aussi le transférer vers un client et passer les appels depuis ce client.

Déplacez les tokens entre votre client et votre serveur en toute sécurité au moyen du protocole HTTPS afin de protéger les comptes des utilisateurs. Apprenez-en davantage sur les conséquences du déplacement de tokens entre vos clients et votre serveur.

Les diverses plateformes utilisent différentes méthodes pour démarrer ce processus et incluent une fonctionnalité pour gérer les tokens d’accès au nom du développeur et de la personne qui accorde les autorisations :

Android

Les SDK Facebook pour Android gèrent automatiquement les tokens d’accès utilisateur·ice par l’intermédiaire de la classe com.facebook.AccessToken. Vous pouvez en apprendre davantage sur l’obtention d’un token d’accès utilisateur·ice en implémentant Facebook Login pour Android. Vous pouvez récupérer le token d’accès utilisateur·ice en inspectant Session.getCurrentAccessToken.

Exemple de code

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    accessToken = AccessToken.getCurrentAccessToken();
}

iOS

Les SDK Facebook pour iOS gèrent automatiquement les tokens d’accès utilisateur·ice par l’intermédiaire de la classe FBSDKAccessToken. Vous pouvez en apprendre davantage sur l’obtention d’un token d’accès utilisateur·ice en implémentant Facebook Login pour iOS. Vous pouvez récupérer le token d’accès en inspectant FBSDKAccessToken.currentAccessToken.

Exemple de code

- (void)viewDidLoad
{
  [super viewDidLoad];
  NSString *accessToken = [FBSDKAccessToken currentAccessToken];
}

JavaScript

Le SDK Facebook pour JavaScript obtient et conserve automatiquement les tokens d’accès utilisateur·ice dans les cookies du navigateur. Vous pouvez récupérer le token d’accès utilisateur·ice en passant un appel FB.getAuthResponse, dont la réponse inclut une propriété accessToken.

Exemple de code

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    var accessToken = response.authResponse.accessToken;
  } 
} );

Veuillez consulter la documentation des SDK Web de Facebook pour obtenir un exemple de code complet.

Web (sans JavaScript)

Lorsque vous créez une application web sans le SDK Facebook pour JavaScript, vous devez générer un token d’accès suivant les étapes décrites dans ce document.

Tokens d’accès d’application

Les tokens d’accès d’application servent à envoyer des requêtes aux API Facebook au nom d’une application plutôt que d’un·e utilisateur·ice. Ils permettent de modifier les paramètres de votre application, de créer et de gérer des utilisateurs tests ou de lire les insights concernant votre application.

Limites

Certaines données d’utilisateur·ice qui sont visibles pour une application envoyant une requête avec un token d’accès utilisateur·ice ne le sont pas toujours avec un token d’accès d’application. Si vous lisez et utilisez les données de l’utilisateur·ice dans votre application, utilisez un token d’accès utilisateur·ice plutôt qu’un token d’accès d’application.

Les tokens d’accès d’application sont considérés comme non sécurisés si votre application est définie sur Native/Desktop dans les paramètres avancés de votre Espace App. Ils ne fonctionneront donc pas avec les appels d’API. En effet, nous supposons que la clé secrète est intégrée aux apps natives ou pour ordinateur de bureau (par conséquent, le token d’accès de l’application généré à l’aide de cette clé n’est pas sécurisé).

Générer un token d’accès d’app

Pour générer un token d’accès d’application, vous avez besoin des éléments suivants :

Exemple de code

curl -X GET "https://graph.facebook.com/oauth/access_token
  ?client_id={your-app-id}
  &client_secret={your-app-secret}
  &grant_type=client_credentials"

Cet appel renvoie un token d’accès d’application qui peut être utilisé à la place du token d’accès utilisateur·ice pour passer des appels d’API, comme mentionné précédemment. Une fois de plus, pour des raisons de sécurité, un token d’accès d’application ne doit jamais être codé en dur dans le code côté client. Un tel codage permettrait à n’importe quelle personne ayant chargé votre page web ou décompilé votre application d’avoir un accès complet à votre clé secrète, et donc de modifier votre application. Cela signifie que vous devez, la plupart du temps, utiliser les tokens d’accès d’application uniquement dans les appels de serveur à serveur.

Remarque : comme cette requête utilise votre clé secrète, elle ne doit jamais être envoyée dans un code côté client ou dans un fichier binaire d’application qui pourrait être décompilé. Il est essentiel de ne jamais communiquer votre clé secrète à qui que ce soit. Par conséquent, cet appel d’API doit être passé uniquement avec un code côté serveur.

Il existe une autre méthode pour passer des appels à l’API Graph sans devoir utiliser un token d’accès d’application généré. Vous pouvez simplement transmettre votre ID d’application et votre clé secrète en tant que paramètre access_token lorsque vous passez l’appel :

curl -i -X GET "https://graph.facebook.com/{api-endpoint}&access_token={your-app_id}|{your-app_secret}"   

Vous devez décider d’utiliser un token d’accès généré ou de suivre cette méthode en fonction de l’endroit où vous cachez votre clé secrète.

Tokens d’accès de Page

Les tokens d’accès de Page sont utilisés dans les appels d’API Graph pour gérer les Pages Facebook. Pour générer un token d’accès de Page, un·e admin de la Page doit accorder à votre application l’autorisation ou les autorisations de Page requises. Une fois les autorisations accordées, vous pouvez récupérer le token d’accès de Page à l’aide d’un token d’accès utilisateur·ice doté des autorisations requises.

Exemple de code

curl -i -X GET "https://graph.facebook.com/{your-user-id}/accounts?access_token={user-access-token}" 

Cette action renvoie une liste de Pages pour lesquelles vous disposez d’un rôle, ainsi que d’autres informations sur chaque Page comme la catégorie de la Page, les autorisations spécifiques dont vous disposez sur chaque Page et le token d’accès de la Page.

{
  "data": [
    {
      "access_token": "EAACEdE...",
      "category": "Brand",
      "category_list": [
        {
          "id": "1605186416478696",
          "name": "Brand"
        }
      ],
      "name": "Ash Cat Page",
      "id": "1353269864728879",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
    {
      "access_token": "EAACEdE...",
      "category": "Pet Groomer",
      "category_list": [
        {
          "id": "163003840417682",
          "name": "Pet Groomer"
        },
        {
          "id": "2632",
          "name": "Pet"
        }
      ],
      "name": "Unofficial: Tigger the Cat",
      "id": "1755847768034402",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT"
      ]
    }
  ]
}

Avec un token d’accès de Page, vous pouvez émettre des appels d’API au nom d’une Page. Par exemple, vous pouvez publier une mise à jour de statut sur une Page (plutôt que sur le journal de l’utilisateur) ou lire les données des statistiques de la Page.

Les tokens d’accès de Page sont propres à chaque Page, chaque admin et chaque application.

Tokens d’accès client

À compter du SDK v13.0 pour iOS et Android, dont la sortie est prévue début 2022, un token client sera nécessaire pour tous les appels vers l’API Graph.

Comme les tokens d’application, les tokens client envoient des requêtes d’API Graph au nom d’une application (plutôt que d’un·e utilisateur·ice).

Contrairement à d'autres tokens, les tokens d’accès client ne peuvent pas être utilisés seuls dans les requêtes. Ils doivent être associés à votre ID d’application. Pour ce faire, ajoutez votre token à la fin de votre ID d’application, en le séparant de celui-ci avec une barre verticale (|), comme suit :

{app-id}|{client-token}

Par exemple :

access_token=1234|5678

Pour récupérer le token d’accès client d’une application, procédez comme suit :

  1. Connectez-vous à votre compte de développeur·se.
  2. Sur la page Applications, sélectionnez une application pour ouvrir son tableau de bord.
  3. Dans le Tableau de bord, sélectionnez Paramètres > Avancé > Sécurité > Token client.

Longueur de token d’accès

Attendez-vous à ce que la longueur de tous les types de tokens d’accès varie au fil du temps à mesure que Facebook apporte des changements au contenu de ces tokens et à la façon dont ils sont encodés. Vous pouvez vous attendre à ce que les tokens s’étendent ou diminuent avec le temps. Veuillez utiliser un type de données de longueur variable sans taille maximale spécifique pour stocker les tokens d’accès.

En savoir plus