2

I am not able to get information from Twitter Api, not giving any information, I need user profile pic, email and users personal account info, I have tried almost every things found on net,

ConfigurationBuilder builder = new ConfigurationBuilder();
         builder.setOAuthConsumerKey(CONSUMER_KEY);
         builder.setOAuthConsumerSecret(CONSUMER_SECRET);
         Configuration configuration = builder.build();

         TwitterFactory factory = new TwitterFactory(configuration);
         twitter = factory.getInstance();

            try {
                User user = twitter.showUser(mTwitter.getUsername());
            } catch (TwitterException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

But, it say auth error not giving any information.

Nikhil
  • 1,212
  • 13
  • 30
user3493518
  • 21
  • 1
  • 3

2 Answers2

3

Using this, you are able to get user information

1.

    twitter_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            client.authorize(SignUpToConnectActivity.this, new Callback<TwitterSession>() {
                @Override
                public void success(Result<TwitterSession> result) {
                    String oauth_token_secret = result.data.getAuthToken().secret;
                    String oauth_token = result.data.getAuthToken().token;
                    TwitterSession user = result.data;
                    getUserDetails(user);
                }
                @Override
                public void failure(TwitterException exception) {
                    //
                }
            });
        }
    })

2.

    public void getUserDetails(TwitterSession twitterSession) {
        Twitter.getApiClient(twitterSession).getAccountService().verifyCredentials(true, false).enqueue(new Callback<User>() {
            @Override
            public void success(Result<User> userResult) {
                try {
                    User user = userResult.data;
                    String fullname = user.name;
                    String twitterID = user.getId();
                    String userSocialProfile = user.profileImageUrl;
                    String userEmail = user.email;
                    String userFirstNmae = fullname.substring(0, fullname.lastIndexOf(" "));
                    String userLastNmae = fullname.substring(fullname.lastIndexOf(" "));
                    String userScreenName = user.screenName;

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            @Override
            public void failure(TwitterException e) {
            }
        });
    }

Using this, you are able to get user information.

Biskrem Muhammad
  • 4,074
  • 3
  • 31
  • 38
Shiv Kumar
  • 635
  • 7
  • 13
1

This works for me Twitter 3+ api calling change

twitterLoginButton.setCallback(new Callback<TwitterSession>() {
    @Override
    public void success(Result<TwitterSession> result) {
        // Do something with result, which provides a TwitterSession for making API calls                
        TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient();
        AccountService accountService = twitterApiClient.getAccountService();
        Call<com.twitter.sdk.android.core.models.User> call = accountService.verifyCredentials(true, true, true);
        call.enqueue(new Callback<com.twitter.sdk.android.core.models.User>() {
            @Override
            public void success(Result<com.twitter.sdk.android.core.models.User> result) {
               //here we go User details
            }

            @Override
            public void failure(TwitterException exception) {
            }
        });
    }

    @Override
    public void failure(TwitterException exception) {
        // Do something on failure
    }
});