Comment puis-je obtenir un Token d'accès à la page qui n'expire pas?

je voudrais savoir s'il est possible d'avoir un token d'accès qui n'expire jamais pour le post à ma page

maintenant je reçois le jeton d'accès avec:

https://graph.facebook.com/me/accounts

j'ai les permissions publish_stream et manage_pages , mais en utilisant le débogueur Access Token je vois que le jeton expire dans environ 1 heure. Est-il un moyen de n'expire jamais?

11
demandé sur BartoszKP 2012-10-03 14:05:44

5 réponses

voir développeurs facebook :

en utilisant un jeton d'accès d'utilisateur de longue durée, en interrogeant le [utilisateur ID]/comptes d'extrémité s'occupera désormais de la page jetons d'accès qui ne sont pas expire pour les pages qu'un utilisateur gère.

ainsi, vous devez échanger votre token shortlived initial pour un token longlived avec un appel côté serveur:

https://graph.facebook.com/oauth/access_token?
client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=EXISTING_ACCESS_TOKEN 

et puis interrogez moi / comptes avec ce jeton de longue durée. Définitivement travaille pour nous, c'est à dire le débogueur affiche: 'Expires: Never"


edit-notre processus

donc, ce que nous faisons est:

  • première côté client d'authentification avec notre application, nous obtenons un "code" de retour, après que l'utilisateur accepte les autorisations demandées et se connecte à son compte avec notre application

    https://www.facebook.com/dialog/oauth ? client_id=YOUR_APP_ID &redirect_uri=YOUR_REDIRECT_URI &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES &response_type = code

  • maintenant dans notre application de serveur nous utilisons authentification côté serveur pour échanger le code pour le token d'accès:

    https://graph.facebook.com/oauth/access_token ? client_id=YOUR_APP_ID &redirect_uri=YOUR_REDIRECT_URI &client_secret=YOUR_APP_SECRET &code=CODE_GENERATED_BY_FACEBOOK

  • avec cet access_token nous faisons l'échange côté serveur comme décrit ci-dessus

  • maintenant nous demandons me / comptes et l'access_token qui en résulte est toujours valide

L'espoir qui aide

16
répondu Pete 2012-10-03 13:19:39

J'ai simplifié Un peu la réponse de Pete et j'ai ajouté l'étape pour obtenir un jeton d'accès à la page qui n'expire pas:

  1. accédez à L'URL suivante et notez le jeton d'accès retourné dans la barre d'adresse du navigateur:

    https://www.facebook.com/dialog/oauth?client_id=APP_ID&redirect_uri=REDIRECT_URI&scope=manage_pages,publish_stream&response_type= jeton

  2. accédez à L'URL suivante et, dans les données retournées, trouvez le nom de la page souhaitée et notez le jeton d'accès:

    https://graph.facebook.com/me/accounts?access_token=ACCESS_TOKEN_RETURNED_FROM_STEP_1

  3. accédez à L'URL suivante et notez le token d'accès retourné:

    https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=PAGES_ACCESS_TOKEN_FROM_STEP_2

  4. utilisez le débogueur Access Token pour vous assurer que l'ID du profil de votre token d'accès correspond à L'ID de la page désirée et qu'il n'expire jamais

4
répondu tpayne 2013-06-06 17:17:20

il y a une façon beaucoup plus facile de le faire à partir de 2016:)


  1. aller à https://developers.facebook.com/tools/explorer

  2. Sélectionnez votre application dans la liste déroulante en haut à droite côté

  3. , Cliquez Sur "Obtenir Le bouton" jeton d'accès juste en dessous de la liste déroulante de l'application sur le côté droit

  4. dans la liste déroulante, sélectionnez la page que vous souhaitez obtenir un token d'accès pour . Si vous ne voyez pas vos pages listées, vous devez vous assurer que vous êtes prêt avec le rôle d'administrateur pour la page. Vous pourriez aussi avoir à cliquez sur "Get Page Access Token" dans la liste déroulante, après quoi votre pages apparaîtront dans la liste déroulante prochaine fois que vous cliquez sur le "Obtenir L'Accès Le jeton" bouton.

  5. cliquez sur l'icône bleue du point d'exclamation dans le champ d'entrée "clé D'accès "

  6. cliquez sur le bouton" Open in Access Token Tool " sur le en bas à droite du popup

  7. cliquez sur le bouton" extension du jeton D'accès " pour obtenir un jeton qui ne expirer


informations originales de cet article: https://www.rocketmarketinginc.com/blog/get-never-expiring-facebook-page-access-token /

2
répondu jetlej 2016-05-23 14:51:47

Ok donc ça a pris environ une semaine de recherche mais voici ma solution. dans le https://developers.facebook.com/tools/explorer / assurez-vous que manage_page fait partie de votre access_token. après cela, utilisez ce code avec votre application id, secret, et redirect:

<?php
   app_id = "APP_ID";
   $app_secret = "APP_SECERET";
   $post_login_url = "REDIRECT_URL";


   $code = $_REQUEST['code'];

   //Obtain the access_token with publish_stream permission 
   if(empty($code)){ 
      $dialog_url= "http://www.facebook.com/dialog/oauth?"
       . "client_id=" .  $app_id 
       . "&redirect_uri=" . urlencode( $post_login_url)
       .  "&COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES";
      echo("<script>top.location.href='" . $dialog_url 
      . "'</script>");
     }
    else {


      $token_url="https://graph.facebook.com/oauth/access_token?"
       . "client_id=" . $app_id 
       . "&redirect_uri=". urlencode($post_login_url)
       . "&client_secret=" . $app_secret
       . "&code=" . $code;
      $response = file_get_contents($token_url);
      $params = null;
      parse_str($response, $params);
      $access_token = $params['access_token'];
      echo 'access token: ' . $access_token.'<br>';

        if($access_token){


          $token_url="https://graph.facebook.com/oauth/access_token?"
       . "client_id=" . $app_id 
       . "&redirect_uri=". urlencode($post_login_url)
       . "&client_secret=" . $app_secret
       .'&grant_type=fb_exchange_token'
       . "&fb_exchange_token=" . $access_token;
       $response = file_get_contents($token_url);
       $access_token = $params['access_token'];
       echo 'new access token: '.$access_token;

        }
    }*/

?>

Après que la copie de la "nouveau jeton d'accès" et de revenir à https://developers.facebook.com/tools/explorer/ Lorsque vous avez passé votre nouveau jeton d'accès dans le jeton d'accès de terrain. Puis cliquez sur soumettre. Après cela dans le noeud vous verrez un + _ ___ cliquez sur ceci et faites défiler vers le bas jusqu'aux comptes et cliquez sur cela. trouvez la page pour laquelle vous avez besoin du token d'accès et copiez-la et collez-la dans le champ de clé d'accès. cliquez sur déboguer et vous verrez qu'il n'expire jamais. enregistrez ce token il restera valide aussi longtemps que vous ne réinitialisez pas vos applications secrètes.

1
répondu Aaron Dartt 2013-04-01 11:09:29

vous pouvez utiliser l'api suivante de facebook pour rafraîchir la vie du token à 60 jours et juste quand le token est sur le point d'expirer, appelez la même api à nouveau avec-dans 60 jours pour rafraîchir sa vie à 60 jours à partir de ce moment-là Le jeton expire est présent dans le paramètre expires et sa valeur est en secondes

remplacer CLIENT_ID et CLIENT_SECRET par leur valeur réelle

https://graph.facebook.com/oauth/access_token?client_id= & client_secret= & grant_type=fb_exchange_token&fb_exchange_token=

dans ACCESS_TOKEN, mettez la valeur réelle du token sans ajouter "access_token= "

0
répondu Harsh Gupta 2013-10-17 04:48:05