2017-02-17 179 views
-1

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

我想在成功登录后获取用户电子邮件ID,名字,姓氏。

@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

上面的代码工作正常,但m得到电子邮件,姓,名始终为空 – chetna

回答

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(); 
相关问题