Passer au contenu principal

Obtention d’Access Tokens à l’aide du flux OAuth à 3 étapes

Pour effectuer des actions au nom d’un autre utilisateur, vous devez obtenir ses access tokens. Les access tokens indiquent le compte X au nom duquel la requête est effectuée ; pour que vous puissiez les obtenir, l’utilisateur doit d’abord vous accorder l’accès. Ces jetons n’expirent pas, mais peuvent être révoqués par l’utilisateur à tout moment. X vous permet d’obtenir des access tokens utilisateur via le flux OAuth à 3 étapes, qui permet à votre application d’obtenir un access token et un secret d’access token en redirigeant un utilisateur vers X afin qu’il autorise votre application. Ce flux est presque identique à celui décrit dans implémentation de Log in with X, à deux exceptions près :
  • L’endpoint GET oauth/authorize est utilisé à la place de GET oauth/authenticate.
  • L’utilisateur sera toujours invité à autoriser l’accès à votre application, même si l’accès a déjà été accordé.  
Avant de commencer, vous devez vérifier les autorisations de votre application et connaître les consumer keys et l’URL de rappel (callback URL). Si vous n’avez pas d’URL de rappel ou d’interface utilisateur publique, envisagez d’utiliser l’autorisation basée sur PIN, conçue pour les applications qui ne peuvent pas accéder à un navigateur web ni l’intégrer afin de rediriger l’utilisateur après l’autorisation.  Les états possibles de l’interaction de connexion à 3 étapes sont illustrés dans le diagramme de flux suivant :

Vue d’ensemble du processus

À un niveau général, le processus OAuth à 3 étapes va :
  1. Créer une requête pour permettre à une application consommatrice d’obtenir un jeton de requête.
  2. Faire authentifier l’utilisateur, puis envoyer à l’application consommatrice un jeton de requête.
  3. Convertir le jeton de requête en un access token utilisateur exploitable.
Clarification de la terminologie Dans le guide ci-dessous, vous pouvez rencontrer différents termes désignant la même chose. Identifiants client :
  • App Key === API Key === Consumer API Key === Consumer Key === Customer Key === oauth_consumer_key
  • App Key Secret === API Secret Key === Consumer Secret === Consumer Key === Customer Key === oauth_consumer_secret
  • Callback URL === oauth_callback  
Identifiants temporaires :
  • Request Token === oauth_token
  • Request Token Secret === oauth_token_secret
  • oauth_verifier  
Identifiants de jeton :
  • Access token === Token === resulting oauth_token
  • Access token secret === Token Secret === resulting oauth_token_secret

Étapes du guide pas à pas

Étape 1 : POST oauth/request_token Créez une requête pour permettre à une application consommatrice d’obtenir un jeton de requête. Le seul paramètre spécifique dans cette requête est oauth_callback, qui doit être une version encodée en URL de l’URL vers laquelle vous souhaitez rediriger votre utilisateur une fois l’étape 2 terminée. Les autres paramètres sont ajoutés par le processus de signature OAuth. Veuillez noter : toute URL de rappel que vous utilisez avec l’endpoint POST oauth/request_token devra être configurée dans les paramètres de votre App développeur sur la page des détails de l’App du developer portal.   La requête inclut : oauth_callback="https%3A%2F%2FyourCallbackUrl.com" oauth_consumer_key="cChZNFj6T5R0TigYB9yd1w"  Votre App doit examiner le statut HTTP de la réponse. Toute valeur autre que 200 indique un échec. Le corps de la réponse contiendra les paramètres oauth_token, oauth_token_secret et oauth_callback_confirmed. Votre App doit vérifier que oauth_callback_confirmed vaut true et stocker les deux autres valeurs pour les étapes suivantes.   La réponse inclut oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0 oauth_token_secret=veNRnAWe6inFuo8o2u8SLLZLjolYDmDP7SzL0YfYI oauth_callback_confirmed=true Étape 2 : GET oauth/authorize Demandez à l’utilisateur de s’authentifier, puis d’envoyer à l’application consommatrice un jeton de requête.   Exemple d’URL de redirection de l’utilisateur : https://api.x.com/oauth/authorize?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0 Après une authentification réussie, votre callback_url recevra une requête contenant les paramètres oauth_token et oauth_verifier. Votre application doit vérifier que le jeton correspond au jeton de requête reçu à l’étape 1.   Requête issue de la redirection du client : https://yourCallbackUrl.com?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0&oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY Étape 3 : POST oauth/access_token Convertissez le jeton de requête en un access token utilisable. Pour convertir le jeton de requête en un access token utilisable, votre application doit effectuer une requête vers l’endpoint POST oauth/access_token contenant la valeur oauth_verifier obtenue à l’étape 2. Le jeton de requête est également transmis dans la partie oauth_token de l’en-tête, mais cela aura été ajouté par le processus de signature.   La requête inclut : POST /oauth/access_token oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0 oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY Une réponse réussie contient les paramètres oauth_token et oauth_token_secret. Le jeton et le secret du jeton doivent être stockés et utilisés pour les futures requêtes authentifiées vers la X API. Pour déterminer l’identité de l’utilisateur, utilisez GET account/verify_credentials.   La réponse inclut : oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4 oauth_token_secret=PbKfYqSryyeKDWz4ebtY3o5ogNLG11WJuZBc9fQrQo Utilisation de ces identifiants pour les requêtes OAuth 1.0a (application-utilisateur) Maintenant que vous avez obtenu les access tokens utilisateur, vous pouvez les utiliser pour accéder à certaines API, telles que POST statuses/update, afin de créer des Tweets pour le compte des utilisateurs.   La requête inclut : POST statuses/update.json oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4

Exemple de cas d’utilisation

Le flux standard est web et utilise le parcours d’autorisation OAuth à 3 étapes (3-legged). Les captures d’écran présentées ici font partie d’un exemple dont vous pouvez consulter le code source à l’adresse https://github.com/xdevplatform/twauth-web. À un moment donné dans votre application, vous devrez rediriger vers X afin d’autoriser votre application.
Lorsque vous redirigez vers X avec le jeton de requête, l’utilisateur est invité à autoriser votre application.
Une fois l’autorisation accordée, l’utilisateur est redirigé vers l’URL de rappel fournie lors de la génération du jeton de requête. Vous l’utiliserez pour obtenir l’access token permanent pour cet utilisateur et le stocker localement.
I