Menu

#353 Callback Twitter4j on Java 8 - not Android

open
nobody
None
2020-08-09
2020-08-09
Anonymous
No

Originally created by: allooba

I am working on a twitter client for desktop (PC and Mac), and I am using Java (pure java) to create this application. Using my own access token, I abled to get all timeline, post tweet, reply, ..etc. However, when I tried to get the access token dynamically (using callback) I couldn't and I looped on this process forever. I am trying to get the AccessToken from Twitter using pure Java. I could get the link for authorization, and I could also open it in the browser. But, I am not able to activate the callback to retrieve it from the browser. Here is my code:

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);
        }
    }

I am using JDK 14 on Netbeans 12.0.

Discussion


Log in to post a comment.