2016-06-10 17 views
3

Ich versuche, Profilbild von Twitter zu bekommen, ich weiß nicht, welche Methode ich anrufen muss, um URL des Profilbildes der Person zu erhalten, die die APP autorisiert hat, hier ist mein Code:
MainActivity.classIst das der richtige Weg Twitter in Android zu integrieren? Kann mir jemand sagen, wie ich die Profilbild-URL bekommen kann?

public class MainActivity extends AppCompatActivity { 

     private static final String TWITTER_KEY = "TWITTER_KEY"; 
     private static final String TWITTER_SECRET = "TWITTER_SECRET"; 
     private TwitterLoginButton loginButton; 
     private long TwitterID; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET); 
      Fabric.with(this, new Twitter(authConfig)); 
      setContentView(R.layout.activity_main); 
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
      setSupportActionBar(toolbar); 
      loginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button); 
      loginButton.setCallback(new Callback<TwitterSession>() { 
       @Override 
       public void success(Result<TwitterSession> result) {Twitter.getInstance().core.getSessionManager().getActiveSession() 
        TwitterSession session = result.data; 
        TwitterID = session.getId(); 
        String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")" + "\nid = " + TwitterID; 
        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show(); 
       } 

       @Override 
       public void failure(TwitterException exception) { 
        Toast.makeText(getApplicationContext(), "Keep it up rest is piece of Cake", Toast.LENGTH_LONG).show(); 
       } 
      }); 

     } 

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

Wie sollte der Code hinzugefügt werden, um die Profilbild-URL zu erhalten? Und bitte sagen Sie auch, dass, wenn dies der richtige Weg ist, Dinge für das Hinzufügen von Twitter Login zu tun.

+0

Sie können auch einen dritten Bibliothek verwenden, wenn Sie mehrere soziale Netzwerke (https://github.com/3pillarlabs/socialauth) integrieren wollen – Matthias

+0

ich integrat müssen e nur Twitter –

+0

überprüfen Fabric.io –

Antwort

1

Ich kann nichts abschließendes über die Implementierung sagen, anscheinend ist es in Ordnung, aber das hängt tatsächlich von Ihren Anforderungen und der Anwendungsumgebung ab. Wenn Sie die documentation ordnungsgemäß befolgt haben und sie auf wenigen Geräten mit unterschiedlichen Konten funktioniert, dann ist es definitiv in Ordnung.

Für Profilbild, wie die documentation sagt:

Sie können eine letzte Profilbild des Nutzers erhalten, zusammen mit den anderen Komponenten, ihre Identität auf Twitter umfassend von GET users/show. Innerhalb der user object finden Sie die Felder profile_image_url und profile_image_url_https. Diese Felder enthalten die geänderte "normale" Variante des hochgeladenen Bildes des Benutzers. Diese "normale" Variante ist typischerweise 48px mal 48px.

Ich glaube, das ist der richtige Weg, um Benutzerdetails zu erhalten. Wenn Sie jedoch keine Benutzerdetails erhalten und die Dinge einfach halten möchten, können Sie das Profilbild viel einfacher aufrufen. (Ich kann nicht garantieren, wie lange Twitter diese unterstützt werden, aber ja es funktioniert perfekt noch :))

https://twitter.com/[username]/profile_image?size=original

wo username ist die Twitter Benutzername von User nutzen Sie session.getUserName() Aufruf erhalten können in success Methode com.twitter.sdk.android.core.Callback<TwitterSession>