Я разрабатываю Spring MVC + Apache Oltu + Twitter пример. В этом примере я создал client Id and Secrete
по ссылке: https://apps.twitter.com/app/new, зарегистрировав/создав там приложение. Теперь с помощью ClientId и Secrete я хочу вызвать REST API Twitter. Я также пошел по ссылке, чтобы получить scope
https://developers.artsy.net/docs/authentication.Apache Oltu + Twitter Пример интеграции не работает
Я использовал следующие параметры в моем приложении:
AUTHORIZATION_URL = "https://api.twitter.com/oauth/authorize";
CLIENT_ID = "RSvE3qVXXXXXXXXXXXXXXXX";
CLIENT_SECRET = "nKEWRoOcXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
REDIRECT_URL = "http://localhost:8080/apache-oltu/twitter/redirect";
ACCESS_TOKEN_URL = "https://api.twitter.com/oauth/access_token";
clientId
и secrete
я не показывая здесь правильно для целей безопасности. Теперь, когда я вызываю свой контроллер, я вижу следующую ошибку из твиттера.
Мой контроллер фактически перенаправлении:
https://api.twitter.com/oauth/authorize?scope=offline_access&response_type=code&redirect_uri=
http%3A%2F%2Flocalhost%3A8080%2Fapache-oltu%2Ftwitter%2Fredirect&client_id=RSvE3qV6Hxfdgv39RJIjDvhhc
Пожалуйста, руководство/помочь мне, что происходит здесь не так. Любая помощь ?
Верно ли scope=offline_access
? Я поделился некоторым кодом с моим
controller:
@Controller
@RequestMapping("/twitter")
public class TwitterController {
private static final Logger LOGGER = LoggerFactory.getLogger(TwitterController.class);
private static final String AUTHORIZATION_URL = "https://api.twitter.com/oauth/authorize";
private static final String CLIENT_ID = "RSvE3qVXXXXXXXXXXXXXXXXXXXXXX";
private static final String CLIENT_SECRET = "nKEWRoXXXXXXXXXXXXXXXXXXXXXXXXXX";
private static final String REDIRECT_URL = "http://localhost:8080/apache-oltu/twitter/redirect";
private static final String ACCESS_TOKEN_URL = "https://api.twitter.com/oauth/access_token";
@RequestMapping(value = "/auth", method = RequestMethod.GET)
public String authenticate() throws OAuthSystemException {
OAuthClientRequest request = OAuthClientRequest
.authorizationLocation(AUTHORIZATION_URL)
.setClientId(CLIENT_ID)
.setRedirectURI(REDIRECT_URL)
.setResponseType("code")
.setScope("offline_access")
.buildQueryMessage();
System.out.println("REDIRECT TO: "+request.getLocationUri());
return "redirect:" + request.getLocationUri();
}
@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public HttpEntity<String> redirect(@RequestParam(value = "code", required = false) String code) throws OAuthSystemException, OAuthProblemException {
String value = "UNKNOWN";
if (code != null && code.length() > 0) {
System.out.println("Received CODE: "+code);
getAccessToken(code);
value = code;
}
return new ResponseEntity<String>(value,HttpStatus.OK);
}
..........................
.........................
}
Любая помощь?