Я ищу способ обмена краткосрочных токенов доступа для долгоживущих токенов доступа в нашем бэкэнде, как описано в Facebook here. Как это сделать с facebook4j?Поддержка Facebook4J для обмена токенами доступа
ответ
я сделал что-то вроде этого, чтобы обменять старый маркер для нового маркера:
private AccessToken refreshToken(Facebook facebook, AccessToken currentToken) throws Exception {
String clientId = configuration.getString(ConfigurationKeys.SOCIAL_FACEBOOK_CLIENTID);
String clientSecret = configuration.getString(ConfigurationKeys.SOCIAL_FACEBOOK_CLIENTSECRET);
Map<String, String> params = new HashMap<String, String>();
params.put("client_id", clientId);
params.put("client_secret", clientSecret);
params.put("grant_type", "fb_exchange_token");
params.put("fb_exchange_token", currentToken.getToken());
RawAPIResponse apiResponse = facebook.callGetAPI("/oauth/access_token", params);
String response = apiResponse.asString();
AccessToken newAccessToken = new AccessToken(response);
facebook.setOAuthAccessToken(newAccessToken);
return newAccessToken;
}
Я думаю, что это может быть сделано после каждого входа в систему, так что маркер доступа обновляется, даже если он остается в силе - вы просто получите новый токен с 60-дневным сроком действия.
Как вы думаете?
Я расширяю класс Facebook. Метод, который они предоставили, не работает. Поэтому я написал еще одну функцию, которая дает длинный живой токен, но он как-то недействителен (я пробовал тестировать новый токен с помощью token_debug и пытался сгенерировать с ним client_code)! Я обновлю вас, если я получу его работу. Если вы можете решить проблему, пожалуйста, обновите меня.
Пожалуйста, помните, что я не очистил код, поскольку я все еще пишу на нем.
public function GetExtendedAccessToken()
{
//global $CONFIGURATIONS;
//$info=$this->api($path,'GET',$args);//doesn't work as api overrides method to post
$string=file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=".$this->getAppId()
."&client_secret=".$this->getAppSecret()
."&fb_exchange_token=".$this->getAccessToken()
."&grant_type=fb_exchange_token"
."&redirect_uri=".$redirectUri);
var_dump($string);
$tokenInfo=explode('&',$string);
$exAccessToken=str_replace('access_token=', '', $tokenInfo[0]);
$expiresAt=str_replace('expires=', '', $tokenInfo[1]);
echo "expires in ". (time()-$expiresAt);
var_dump($exAccessToken);
return $exAccessToken;
}
Это работает сейчас. Несколько раз я получаю сообщение об ошибке, не предоставляющей redirect_uri.
- 1. Facebook4j с токеном доступа OAUTH
- 2. Поддержка обмена сообщениями для SMTP?
- 3. Oauth2 Код авторизации на обмене площадкой для обмена токенами: 400
- 4. поддержка FullCalendar для Google и обмена (Outlook)
- 5. Nodemailer и GMail с токенами доступа
- 6. facebook4j OAuth issue
- 7. Поддержка обмена сообщениями Duplex NFC
- 8. Поддержка Google TV для доступа к Flash
- 9. Поддержка нескольких пользователей для доступа db
- 10. Facebook4j Post Tracking Issue
- 11. Facebook4j - Свойства пользователя null
- 12. Facebook4J Друзья Фотографии альбома
- 13. Facebook4J OAuth failing
- 14. Поддержка буфера обмена в Silverlight 3
- 15. Поддержка автоматического обновления токенов доступа?
- 16. Facebook4j получить страницу понравилось
- 17. Facebook4j API: Поиск
- 18. Управление токенами аутентификации Facebook
- 19. Обмен токенами OAuth2 между провайдерами
- 20. В чем разница между этими токенами доступа к facebook?
- 21. Неверная информация о пользователе с различными токенами доступа. Tweepy
- 22. Facebook4j library post photo issue
- 23. Получение сообщения с помощью Facebook4J
- 24. Как oAuth с Facebook4j на Android
- 25. Поддержка движка приложений для стороннего токена для доступа к API
- 26. Поддержка CORS для dl.dropboxuserconent.com?
- 27. facebook4j post from is null
- 28. facebook4j как получитьPictureURL размер 480x480?
- 29. Парсер с зависимыми токенами
- 30. буфер обмена доступа к данным в формате
Выглядит перфекционизм, хотя я думал, что будет/должно быть запрограммированное решение в библиотеке facebook – Pepster
Я получаю эту ошибку: Исключение в потоке «main» java.lang.IllegalStateException: отсутствуют учетные данные аутентификации. \t на facebook4j.FacebookBaseImpl.ensureAuthorizationEnabled (FacebookBaseImpl.java:154) – DT7
У меня есть разумная ошибка «Учетные данные аутентификации отсутствуют» @ DT7: вы нашли какой-либо способ получить новый tocken ??? –