web-dev-qa-db-fra.com

Obtenez longue vie jeton d'accès de Facebook

Si je comprends bien, Facebook a récemment décidé de supprimer la permission offline_access et a introduit un concept appelé jetons d'accès à vie longue, d'une durée maximale de 60 jours. Quelqu'un sait-il comment obtenir ce jeton d'accès avec le SDK JavaScript de Facebook? 

56

Il existe un moyen d'étendre cette période à 60 jours. décrit ici: https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/ sous Scenario 4: Client-side OAuth and Extending Access_Token Expiration Time through New Endpoint

Edit: Afin d'étendre le jeton d'accès, vous devez effectuer la requête suivante avec votre jeton d'accès de courte durée:

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 
106
Yan Berk

En raison d'un bogue dans Facebook, certains utilisateurs devront désautoriser l'application avant que Facebook ne leur attribue les jetons de longue durée.

12
Steve Yeago

Je viens de passer un appel Facebook Graph API en utilisant 'axios'. Vous pouvez trouver le client_id et le client_secret à partir de votre tableau de bord d'application.

getLongLiveToken = () => {
    window.FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            let userAccessToken = response.authResponse.accessToken;
            axios.get(`https://graph.facebook.com/oauth/access_token?client_id=${clientId}&client_secret=${clientSecret}&grant_type=fb_exchange_token&fb_exchange_token=${userAccessToken}`)
            .then((response) => {
                console.log("Long Live Access Token");
                console.log(response.data.access_token);
             });
           }
       });
    }
<button onClick={ () => this.getLongLiveToken() } >Long Live Token</button>
0
AD B