2015-02-11 8 views
8

Używam wtyczki Fabric z Androidem studio po zalogowaniu Mam sesję, nazwę użytkownika i identyfikator użytkownika. Dostałem również adres e-mail. Ale nie można znaleźć żadnej opcji pobrania obrazu profilu użytkownika. Czy ktoś może mi w tym pomóc?Twitter Jak uzyskać zdjęcie profilowe użytkownika za pomocą wtyczki Fabric w Androidzie Studio (Naprawiono)

/

/inti twitter client 
     loginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button); 
     loginButton.setCallback(new Callback<TwitterSession>() { 
      @Override 
      public void success(Result<TwitterSession> result) { 
       // Do something with result, which provides a TwitterSession for making API calls 
       System.out.println("twitter success"+result.data.getUserId()+result.data.getUserName()); 
       gettwitteremail(); 
      } 

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

private void gettwitteremail(){ 
     TwitterSession session = 
       Twitter.getSessionManager().getActiveSession(); 
     TwitterAuthToken authToken = session.getAuthToken(); 
     String token = authToken.token; 
     String secret = authToken.secret; 
     TwitterAuthClient authClient = new TwitterAuthClient(); 
     authClient.requestEmail(session, new Callback() { 
      @Override 
      public void success(Result result) { 
       // Do something with the result, which provides 
       // the email address 
       System.out.println("twitter sucess"+result.data); 
      } 

      @Override 
      public void failure(TwitterException exception) { 
       // Do something on failure 
       System.out.println("twitter sucess"+exception.getMessage()); 
       exception.printStackTrace(); 
      } 
     }); 

Poprawiono za pomocą następującego kodu

TwitterSession session = 
       Twitter.getSessionManager().getActiveSession(); 
     TwitterAuthToken authToken = session.getAuthToken(); 
     String token = authToken.token; 
     String secret = authToken.secret; 
     TwitterApiClient twitterApiClient = Twitter.getApiClient(); 
     StatusesService twapiclient = twitterApiClient.getStatusesService(); 
     twapiclient.userTimeline(twitteruserid,null,null,null,null,null,null,null,null,new Callback<List<Tweet>>() { 
      @Override 
      public void success(Result<List<Tweet>> listResult) { 

       System.out.println("listResult"+listResult.data.size()); 
       System.out.println("listResult"+listResult.data.get(0).user); 
       System.out.println("listResult"+listResult.data.get(0).user.profileImageUrl); 
       userInfo.imageurl = listResult.data.get(0).user.profileImageUrl; 

      } 

      @Override 
      public void failure(TwitterException e) { 

      } 
     }); 
+0

Naprawiłem, przy pomocy tam odpoczynku api –

Odpowiedz

3

Spróbuj kod pobrać profil użytkownika pic.

public void getTwitterData(final TwitterSession session) { 
     MyTwitterApiClient tapiclient = new MyTwitterApiClient(session); 
     tapiclient.getCustomService().show(session.getUserId(), 
     new Callback<User>() { 
      @Override 
      public void success(Result<User> result) { 

       TwitterAuthToken authToken = session.getAuthToken(); 
       String token = authToken.token; 
       String secret = authToken.secret; 
       name.setText(result.data.name); 
       location.setText(result.data.location); 
       new ImageDownloader(profileImageView) 
       .execute(result.data.profileImageUrl); 

       Log.d("Name", name); 
       Log.d("city", location); 

       } 

       public void failure(TwitterException exception) { 
       // Do something on failure 
       exception.printStackTrace(); 
      } 
     }); 

    **************** 
     class MyTwitterApiClient extends TwitterApiClient { 
      public MyTwitterApiClient(TwitterSession session) { 
       super(session); 
      } 

      public CustomService getCustomService() { 
       return getService(CustomService.class); 
      } 


     } 

     interface CustomService { 
      @GET("/1.1/users/show.json") 
      void show(@Query("user_id") long id, Callback<User> cb); 
     } 

************ 
    class ImageDownloader extends AsyncTask<String, Void, Bitmap> { 
     ImageView bmImage; 

     public ImageDownloader(ImageView bmImage) { 
      this.bmImage = bmImage; 
     } 

     protected Bitmap doInBackground(String... urls) { 
      String url = urls[0]; 
      Bitmap mIcon = null; 
      try { 
       InputStream in = new java.net.URL(url).openStream(); 
       mIcon = BitmapFactory.decodeStream(in); 
      } catch (Exception e) { 
       Log.e("Error", e.getMessage()); 
      } 
      return mIcon; 
     } 

     protected void onPostExecute(Bitmap result) { 
      bmImage.setImageBitmap(result); 
     } 
    }