簡體   English   中英

如何從Twitter Api獲取用戶信息

[英]How to get User Information form Twitter Api

我無法從Twitter Api獲取信息,沒有提供任何信息,我需要用戶個人資料圖片,電子郵件和用戶個人帳戶信息,我已經嘗試了網上發現的幾乎所有內容,

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

但是,它說auth錯誤沒有提供任何信息。

使用此功能,您可以獲得用戶信息

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

使用此功能,您可以獲取用戶信息。

這適用於我Twitter 3+ API調用更改

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM