Vraag Krijg een lang live toegangstoken van Facebook


Zoals ik het begrijp, heeft Facebook onlangs besloten de offline_access toestemming en heeft een concept geïntroduceerd met de naam langlevende toegangstokens die maximaal 60 dagen meegaan. Is er iemand die weet hoe hij dit toegangstoken moet krijgen met de Facebook JavaScript SDK?


57
2018-05-06 01:06


oorsprong


antwoorden:


Er is een manier om dit uit te breiden naar 60 dagen. hier beschreven: https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/ onder Scenario 4: Client-side OAuth and Extending Access_Token Expiration Time through New Endpoint

Bewerk: Om het toegangstoken uit te breiden, moet je het volgende verzoek doen met je kortstondige toegangstoken:

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 

105
2018-05-06 06:31



Vanwege een bug op Facebook, moeten sommige gebruikers de app ongeautoriseren voordat Facebook de langlevende tokens gaat uitgeven.


12
2017-07-27 21:12



voeg een functie toe aan het javascript met de volgende details: ik hoop dat het voor u werkt.

function getLongLiveToken(data){

        FB.api('oauth/access_token', {
            client_id: data.client_id, // FB_APP_ID
            client_secret: data.secret, // FB_APP_SECRET
            grant_type: 'fb_exchange_token',
            fb_exchange_token: data.access_token // USER_TOKEN
        }, function (res) {
            if(!res || res.error) {
                console.log(!res ? 'error occurred' : res.error);
            }else{
                var accessToken = res.access_token;
                if(typeof accessToken != 'undefined'){
                }
            }
        });
    }

0
2018-03-27 07:32



Ik heb net een Facebook Graph API-aanroep gemaakt met behulp van 'axios'. U vindt client_id en client_secret op uw App Dashboard.

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
2018-03-30 05:50