Я совсем новичок в sprig / spring-social.Я пытаюсь выполнить запрос к API Facebook из моего приложения весенней загрузки (v1.4), чтобы обменять код авторизации (который я получаю с моим внешним приложением) на accessToken.Вот как я это делаю
FacebookConnectionFactory facebookConnectionFactory = new FacebookConnectionFactory(fbAppId, fbAppSecret);
AccessGrant accessGrant = facebookConnectionFactory.getOAuthOperations()
.exchangeForAccess(authCode, redirectUri, null);
В результате я получаю AccessGrant
с accessToken
равным null
.Пытаясь отладить поток обмена кода с токеном, я вижу, что в FacebookOAuth2Template::postForAccessGrant()
действительно получен правильный authToken, но по какой-то причине он преобразован в MultiValueMap<String, String>
, то есть:
protected AccessGrant postForAccessGrant(String accessTokenUrl, MultiValueMap<String, String> parameters) {
MultiValueMap<String, String> response = getRestTemplate().postForObject(accessTokenUrl, parameters, MultiValueMap.class);
String expires = response.getFirst("expires");
return new AccessGrant(response.getFirst("access_token"), null, null, expires != null ? Long.valueOf(expires) : null);
}
Myresponse
MultiValueMap
, таким образом, содержит одну запись с ключом, который является ответом facebook authToken.Очевидно, что все последующие response.getFirst()
вызовы ничего не возвращают
Я почти уверен, что упускаю что-то здесь очевидное, но все же не могу понять, почему ответ authToken преобразуется в MutliValueMap
так, как это происходит