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帐户获取登录详细信息,但有一些问题请帮帮我
答案 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();