2015-01-13 10 views

risposta

11

Trovato la risposta.

C'è un callback che restituisce l'oggetto Utente.

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

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

Sul ramo di successo, è possibile ottenere l'oggetto Utente chiamando:

User user = userResult.data; 

E da questo oggetto è possibile ottenere tutte le informazioni costituiscono l'user.For op

String profileImage= user.profileImageUrl; 
+0

Che funziona, grazie. Sta recuperando una versione a bassa risoluzione dell'immagine del profilo. Eri in grado di ottenere una qualità migliore? –

+0

Ho provato allo stesso modo, ma né il successo, né il mancato ottenimento chiamato – NarendraJi

+0

getApiClient non può essere risolto? –

16

dal documento ufficiale:

È possibile ottenere un noi L'immagine del profilo più recente di er da GET users/show. All'interno dell'oggetto utente, troverai i campi profile_image_url e profile_image_url_https. Questi campi conterranno la variante "normale" ridimensionata dell'immagine caricata dell'utente. Questa variante "normale" è in genere 48x48 px.

Modificando l'URL, è possibile recuperare altre varianti di variante come "più grande", "mini" e "originale".

seguito il codice:

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); 
    } 
}); 

Per ulteriori informazioni fare riferimento a Twitter API Documentation | Profile Images and Banners

6

da Gradle 2.0.0 e fino all'uso seguente metodo:

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

partire dal Nov 2016. Questo funziona. C'è una modifica nell'implementazione delle credenziali di verifica.

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

Questo funziona, grazie! – Michalsx

Problemi correlati