IT story

Facebook에서 장기 라이브 액세스 토큰 받기

hot-time 2020. 12. 29. 07:55
반응형

Facebook에서 장기 라이브 액세스 토큰 받기


내가 알기로 최근 Facebook은 offline_access권한 을 제거하기로 결정 하고 최대 60 일 동안 지속되는 장기 액세스 토큰이라는 개념을 도입했습니다. Facebook JavaScript SDK로이 액세스 토큰을 얻는 방법을 아는 사람이 있습니까?


이것을 60 일로 연장하는 방법이 있습니다. 여기에 설명 : https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/ underScenario 4: Client-side OAuth and Extending Access_Token Expiration Time through New Endpoint

편집 : 액세스 토큰을 확장하려면 단기 액세스 토큰으로 다음 요청을해야합니다.

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 

Facebook의 버그로 인해 일부 사용자는 Facebook이 오래 지속되는 토큰을 발행하기 전에 앱의 승인을 취소해야합니다.


방금 'axios'를 사용하여 Facebook Graph API 호출을했습니다. 앱 대시 보드에서 client_id 및 client_secret을 찾을 수 있습니다.

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>

다음 세부 사항으로 자바 스크립트에 기능을 추가하십시오.

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'){
                }
            }
        });
    }

참조 URL : https://stackoverflow.com/questions/10467272/get-long-live-access-token-from-facebook

반응형