2015-03-19 3 views
3

Как я могу получить адрес электронной почты пользователя через twitter API? Я использую Twitter4j для Войти с твиттереПолучить адрес электронной почты пользователя от Twitter (Android)

+0

возможно дубликат [Email Твиттера пользователя в Twitter4j] (Http: // StackOverflow.com/questions/11083145/email-of-twitter-user-in-twitter4j) –

+1

Также см. эту ссылку: https://dev.twitter.com/twitter-kit/android/request-email –

+0

@ DanielNugent..your ссылка полезна, но какой метод я должен использовать в случае twitter4j? – Abhilash

ответ

0

Я надеюсь, что это будет работать пожалуйста, используйте следующий код в ваш запрос обратного вызова результат

TwitterloginButton.setCallback(new Callback<TwitterSession>() { 
      @Override 
      public void success(Result<TwitterSession> result) { 
       session = result.data; 

       AccountService ac = Twitter.getApiClient(result.data).getAccountService(); 
       ac.verifyCredentials(true, true, new Callback<User>() { 
        @Override 
        public void success(Result<com.twitter.sdk.android.core.models.User> result) { 

         String imageUrl = result.data.profileImageUrl; 
         String email = result.data.email; 
         String Name = result.data.name; 
         long userid = result.data.id; 
         String username = result.data.screenName; 

         System.out.println(imageUrl); 
         System.out.println("EMAIL:" + email); 
         System.out.println("Name:" + Name); 
         System.out.println("ID:" + userid); 
         System.out.println("Username:" + username); 
        } 

        @Override 
        public void failure(TwitterException e) { 

        } 
       }); 
0

проверить эти ссылки

https://dev.twitter.com/twitterkit/android/installation

https://dev.twitter.com/twitterkit/android/log-in-with-twitter

Запишите ниже код после успешного входа в систему

TwitterAuthClient authClient = new TwitterAuthClient(); 
authClient.requestEmail(session, new Callback<String>() { 
    @Override 
    public void success(Result<String> result) { 
    // Do something with the result, which provides the email address 
} 

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

первую очередь убедитесь, что вы активировали Request email addresses from users в вашем твиттере приложение Permissions раздела

enter image description here


затем следуют Twitter Documentation шаги:

1.Installation process : просто импортирует в SDk пакет твиттере

и я использую только пакет ядра

compile 'com.twitter.sdk.android:twitter-core:3.1.1' 

Initialize Twitter Kit на вашей деятельности onCreate метод

Twitter.initialize(this); 

Добавьте свой идентификатор приложения и секрет в файл strings.xml

<string android:name="com.twitter.sdk.android.CONSUMER_KEY">XXXXXXXXXXX</string> 
<string android:name="com.twitter.sdk.android.CONSUMER_SECRET">XXXXXXXXXXX</string> 

2.Add the Button:

<com.twitter.sdk.android.core.identity.TwitterLoginButton 
    android:id="@+id/twitter_connect" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
Подсказка: вы можете использовать пользовательские кнопки только follow this simple answer
private TwitterLoginButton twitterBtn; 

...

twitterBtn = (TwitterLoginButton) findViewById(R.id.twitter_connect); 
twitterBtn.setCallback(new Callback<TwitterSession>() { 
    @Override 
    public void success(Result<TwitterSession> result) { 
     // Do something with result, which provides a TwitterSession for making API calls 
     // which is do the callback from twitter to get the Email 
     TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession(); 
     TwitterAuthToken authToken = session.getAuthToken(); 
     String token = authToken.token; 
     String secret = authToken.secret; 

     TwitterAuthClient authClient = new TwitterAuthClient(); 
     authClient.requestEmail(session, new Callback<String>() { 
      @Override 
      public void success(Result<String> result) { 
       // Do something with the result, which provides the email address 
       // the email is saved in the result variable 'result.data' 
       Toast.makeText(getBaseContext(), "Email" + result.data, Toast.LENGTH_LONG).show(); 
      } 

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

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

Далее, передать результат аутентификации операцию обратно к кнопке:

// Pass the activity result to the login button. 
twitterBtn.onActivityResult(requestCode, resultCode, data); 

так:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    // Pass the activity result to the login button. 
    twitterBtn.onActivityResult(requestCode, resultCode, data); 
} 
Смежные вопросы