Обратный звонок Twitter4j на Java 8 - не Android - PullRequest
0 голосов
/ 06 августа 2020

Я работаю над клиентом 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...