2015-01-13 12 views

Odpowiedz

11

Znaleziono odpowiedź.

Istnieje wywołanie zwrotne, które umożliwia powrót obiektu użytkownika.

Twitter.getApiClient().getAccountService().verifyCredentials(true, false, new Callback<User>() { 
       @Override 
       public void success(Result<User> userResult) { 
       } 

       @Override 
       public void failure(TwitterException e) { 
       } 
      }); 

Na oddziale sukces, można uzyskać obiekt użytkownika poprzez wywołanie:

User user = userResult.data; 

I z tego obiektu można uzyskać tworząc wszystkich informacji user.For op

String profileImage= user.profileImageUrl; 
+0

To działa dobrze, dziękuję. To pobieranie wersji obrazu o bardzo niskiej rozdzielczości. Czy byłeś w stanie uzyskać lepszą jakość? –

+0

Próbowałem w ten sam sposób, ale ani sukces, ani niepowodzenie w nazwie – NarendraJi

+0

getApiClient nie może zostać rozwiązany? –

16

Z oficjalnego dokumentu:

Możesz uzyskać od nas Najnowszy profil profilu er od GET users/show. W obiekcie użytkownika znajdziesz pola profile_image_url i profile_image_url_https. Te pola będą zawierać zmieniony "normalny" wariant przesłanego obrazu użytkownika przez użytkownika . Ten "normalny" wariant ma zwykle rozmiar 48 x 48 pikseli.

Modyfikując adres URL, można pobrać inne rozmiary wariantu, takie jak "większy", "mini" i "oryginalny".

Po kodzie:

TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient(); 
twitterApiClient.getAccountService().verifyCredentials(false, false, 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); 
    } 
}); 

W celu uzyskania dalszych informacji patrz Twitter API Documentation | Profile Images and Banners

6

z Gradle 2.0.0 i do użytku następujący sposób:

Call<User> userResult=Twitter.getApiClient(session).getAccountService().verifyCredentials(true,false); 
        userResult.enqueue(new Callback<User>() { 
         @Override 
         public void success(Result<User> result) { 
          User user = userResult.data; 
          String profileImage= user.profileImageUrl; 
         } 

         @Override 
         public void failure(TwitterException exception) { 

         } 
        }); 
11

Począwszy od listopada 2016 r. To działa. Występuje zmiana we wdrażaniu weryfikacji danych uwierzytelniających.

Call<User> user = TwitterCore.getInstance().getApiClient().getAccountService().verifyCredentials(false, false); 
      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

To działa, dziękuję! – Michalsx