Twitter集成 - 如何获取用户登录详细信息?

时间:2017-02-17 11:23:44

标签: android twitter

Twitter整合

我想在成功登录后获得用户电子邮件ID,firstName,lastName。

@Override
public void onClick(View v)
  AppConstants.auth_adapter_Twitter = new SocialAuthAdapter(new ResponseListener());
  AppConstants.auth_adapter_Twitter.authorize(getActivity(), SocialAuthAdapter.Provider.TWITTER);
} 

private final class ResponseListener implements DialogListener {
    @Override
    public void onComplete(Bundle values) {
        AppConstants.auth_adapter_Twitter.getUserProfileAsync(new ProfileDataListener());
    }

    @Override
    public void onError(SocialAuthError error) {
        System.out.println("ResponseListener " + error);
    }

    @Override
    public void onCancel() {
        System.out.println("Dialog Cancelled");
    }

    @Override
    public void onBack() {
        System.out.println("Dialog Closed by pressing Back Key");
    }



       private final class ProfileDataListener implements SocialAuthListener<Profile> {

        @Override
        public void onExecute(String provider, Profile t) {
            System.out.println("ProfileDataListener execute");

            System.out.println("social_id " + t.getValidatedId());
            System.out.println(t.getDisplayName() + "firstname " + t.getFirstName());
            System.out.println(" email " + t.getEmail());
            System.out.println("lastname " + t.getLastName());
            System.out.println("provider " + provider);

        }

        @Override
        public void onError(SocialAuthError e) {
            System.out.println("SocialAuthError " + e);
        }
    }

我使用上面的代码登录Twitter帐户获取登录详细信息,但有一些问题请帮帮我

1 个答案:

答案 0 :(得分:0)

除非您的应用已列入白名单,否则您无法从Twitter OAuth获取电子邮件。有关详细信息,请访问此Link

如果您的应用已列入白名单,则可以参考此代码获取用户信息 -

使用

后获得的访问令牌
accessToken = twitterConnection.getOAuthAccessToken
(requestToken,editPinCode.getText().toString());

oHelper.storeAccessToken(accessToken);

Log.i("Access Token:", accessToken.getToken());

Log.i("Access Secret:", accessToken.getTokenSecret());

long userID = accessToken.getUserId();

User user = twitterConnection.showUser(userID);

user.getName();
相关问题