2016-08-16 1 views
4

Я хочу получить всю информацию о пользователе после андроида twitter успешной логин.
Для входа в twiiter я использую ткани. вот мой код.twitter login с использованием материалов в android AccountService.verifyCredentials() не принимает новый обратный вызов <User>() как параметр

в OnCreate()

twitterLoginButton = (TwitterLoginButton) findViewById(R.id.twitterLogin); 

twitterLoginButton.setCallback(new Callback<TwitterSession>() { 
     @Override 
     public void success(Result<TwitterSession> result) { 
      //If login succeeds passing the Calling the login method and passing Result object 
      twitter_login(result); 
     } 

     @Override 
     public void failure(TwitterException exception) { 
      //If failure occurs while login handle it here 
      Log.d("TwitterKit", "Login with Twitter failure", exception); 
     } 
    }); 

и функции twitter_login() является

public void twitter_login(Result<TwitterSession> result) { 

    //Creating a twitter session with result's data 
    TwitterSession session = result.data; 

    //Getting the username from session 
    final String username = session.getUserName(); 

    //This code will fetch the profile image URL 
    //Getting the account service of the user logged in 

    /*AccountService ac = Twitter.getApiClient(result.data).getAccountService(); 
    ac.verifyCredentials(true, true);*/ 

    Twitter.getApiClient(session) 
      .getAccountService() 
      .verifyCredentials(true, false, new Callback<User>() { 

       @Override 
       public void failure(TwitterException e) { 
        //If any error occurs handle it here 
       } 

       @Override 
       public void success(Result<User> userResult) { 

        String imageUrl = userResult.data.profileImageUrl; 
        String email = userResult.data.email; 
        String Name = userResult.data.name; 
        long userid = userResult.data.id; 
        String username = userResult.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); 
       } 
      }); 
} 

на virifyCredentials() это thros об ошибке новый обратный вызов() не может применяться.
, пожалуйста, предложите мне использовать этот метод.
заранее.

+0

новый твиттер SDK дает мне головную боль. –

ответ

7

Я нашел решение, делая попытки:

public void success(Result<TwitterSession> result) 
{ 
    TwitterSession session = result.data; 
    Twitter   twitter = Twitter.getInstance(); 
    TwitterApiClient api  = twitter.core.getApiClient(session); 
    AccountService service = api.getAccountService(); 
    Call<User>  user = service.verifyCredentials(true, true); 

    user.enqueue(new Callback<User>() 
    { 
     @Override 
     public void success(Result<User> userResult) 
     { 
      String name = userResult.data.name; 
      String email = userResult.data.email; 

      // _normal (48x48px) | _bigger (73x73px) | _mini (24x24px) 
      String photoUrlNormalSize = userResult.data.profileImageUrl; 
      String photoUrlBiggerSize = userResult.data.profileImageUrl.replace("_normal", "_bigger"); 
      String photoUrlMiniSize  = userResult.data.profileImageUrl.replace("_normal", "_mini"); 
      String photoUrlOriginalSize = userResult.data.profileImageUrl.replace("_normal", ""); 
     } 

     @Override 
     public void failure(TwitterException exc) 
     { 
      Log.d("TwitterKit", "Verify Credentials Failure", exc); 
     } 
    }); 
} 
+0

Большое вам спасибо за это решение @ Nevada750 – siva

+0

вы экономите мой день брат –

Смежные вопросы