Как я понимаю, недавно Facebook решил удалить разрешение offline_access и ввел понятие, называемое долгоживущими токенами доступа, которое длится максимум 60 дней. Есть ли кто-нибудь, кто знает, как получить этот токен доступа с помощью JavaScript JavaScript SDK?
Получить длинный токен доступа через Facebook
Ответ 1
Есть способ продлить это до 60 дней. описанный здесь: https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/
под Scenario 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 
		Ответ 2
Из-за ошибки в Facebook некоторые пользователи должны будут неавторизовать приложение до того, как Facebook выдает долгоживущие токены.
Ответ 3
добавить функцию в javascript со следующими подробностями: я надеюсь, что это сработает для вас.
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'){
                }
            }
        });
    }