Я работаю над клиентом Twitter для настольных компьютеров (P C и Ma c), и я использую Java (чистый java) для создания этого приложения. Используя свой собственный токен доступа, я смог получить всю хронологию, опубликовать твит, ответить и т. Д. c. Однако, когда я попытался получить токен доступа динамически (с помощью обратного вызова), я не смог и зациклился на этом процессе навсегда. Я пытаюсь получить AccessToken из Twitter, используя чистый Java. Я мог получить ссылку для авторизации, а также мог открыть ее в браузере. Но я не могу активировать обратный вызов, чтобы получить его из браузера. Вот мой код:
private void loginTwitter(){
try {
String callBackUrl = "twittersdk://";
twitter = TwitterFactory.getSingleton();
twitter.setOAuthConsumer("MY KEY", "MY SECRET KEY");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
final OAuth10aService service = new ServiceBuilder("HmccRQEFoFjNrdLvotAOa3oyQ")
.apiSecret("MY SECRET KEY")
.callback(callBackUrl)
.build(TwitterApi.instance());
RequestToken requestToken = twitter.getOAuthRequestToken();
String url = requestToken.getAuthorizationURL();
AccessToken accessToken = null;
final OAuthRequest request = new OAuthRequest(Verb.GET,url);
final Response response = service.execute(request);
openWebpage(url);
service.signRequest(accessToken, request);
System.out.print(response);
//final OAuth1RequestToken requestToken = service.getRequestToken();
//
String authUrl = service.getAuthorizationUrl(requestToken);
// final OAuth1AccessToken accessToken = service.getAccessToken(requestToken, "verifier you got from the user/callback");
// final OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.twitter.com/1.1/account/verify_credentials.json");
// service.signRequest(accessToken, request); // the access token from step 4
// final Response response = service.execute(request);
System.out.println(requestToken.getToken());
}
catch (TwitterException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
catch (InterruptedException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
catch (ExecutionException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
catch (IOException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
Я использую JDK 14 в Netbeans 12.0.