Twitter如何使用Android Studio中的Fabric插件获取用户个人资料照片

前端之家收集整理的这篇文章主要介绍了Twitter如何使用Android Studio中的Fabric插件获取用户个人资料照片前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在登录后使用Fabric插件Android工作室我得到了会话,用户名用户ID.还有电子邮件地址.但是找不到任何获取用户个人资料照片的选项.
  1. /
  2.  
  3. /inti twitter client
  4. loginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button);
  5. loginButton.setCallback(new Callback<TwitterSession>() {
  6. @Override
  7. public void success(Result<TwitterSession> result) {
  8. // Do something with result,which provides a TwitterSession for making API calls
  9. System.out.println("twitter success"+result.data.getUserId()+result.data.getUserName());
  10. gettwitteremail();
  11. }
  12.  
  13. @Override
  14. public void failure(TwitterException exception) {
  15. // Do something on failure
  16. }
  17. });
  18.  
  19. private void gettwitteremail(){
  20. TwitterSession session =
  21. Twitter.getSessionManager().getActiveSession();
  22. TwitterAuthToken authToken = session.getAuthToken();
  23. String token = authToken.token;
  24. String secret = authToken.secret;
  25. TwitterAuthClient authClient = new TwitterAuthClient();
  26. authClient.requestEmail(session,new Callback() {
  27. @Override
  28. public void success(Result result) {
  29. // Do something with the result,which provides
  30. // the email address
  31. System.out.println("twitter sucess"+result.data);
  32. }
  33.  
  34. @Override
  35. public void failure(TwitterException exception) {
  36. // Do something on failure
  37. System.out.println("twitter sucess"+exception.getMessage());
  38. exception.printStackTrace();
  39. }
  40. });

固定

通过使用以下代码修复

  1. TwitterSession session =
  2. Twitter.getSessionManager().getActiveSession();
  3. TwitterAuthToken authToken = session.getAuthToken();
  4. String token = authToken.token;
  5. String secret = authToken.secret;
  6. TwitterApiClient twitterApiClient = Twitter.getApiClient();
  7. StatusesService twapiclient = twitterApiClient.getStatusesService();
  8. twapiclient.userTimeline(twitteruserid,null,new Callback<List<Tweet>>() {
  9. @Override
  10. public void success(Result<List<Tweet>> listResult) {
  11.  
  12. System.out.println("listResult"+listResult.data.size());
  13. System.out.println("listResult"+listResult.data.get(0).user);
  14. System.out.println("listResult"+listResult.data.get(0).user.profileImageUrl);
  15. userInfo.imageurl = listResult.data.get(0).user.profileImageUrl;
  16.  
  17. }
  18.  
  19. @Override
  20. public void failure(TwitterException e) {
  21.  
  22. }
  23. });

解决方法

尝试使用此代码获取用户个人资料照片.
  1. public void getTwitterData(final TwitterSession session) {
  2. MyTwitterApiClient tapiclient = new MyTwitterApiClient(session);
  3. tapiclient.getCustomService().show(session.getUserId(),new Callback<User>() {
  4. @Override
  5. public void success(Result<User> result) {
  6.  
  7. TwitterAuthToken authToken = session.getAuthToken();
  8. String token = authToken.token;
  9. String secret = authToken.secret;
  10. name.setText(result.data.name);
  11. location.setText(result.data.location);
  12. new ImageDownloader(profileImageView)
  13. .execute(result.data.profileImageUrl);
  14.  
  15. Log.d("Name",name);
  16. Log.d("city",location);
  17.  
  18. }
  19.  
  20. public void failure(TwitterException exception) {
  21. // Do something on failure
  22. exception.printStackTrace();
  23. }
  24. });
  25.  
  26. ****************
  27. class MyTwitterApiClient extends TwitterApiClient {
  28. public MyTwitterApiClient(TwitterSession session) {
  29. super(session);
  30. }
  31.  
  32. public CustomService getCustomService() {
  33. return getService(CustomService.class);
  34. }
  35.  
  36.  
  37. }
  38.  
  39. interface CustomService {
  40. @GET("/1.1/users/show.json")
  41. void show(@Query("user_id") long id,Callback<User> cb);
  42. }
  43.  
  44. ************
  45. class ImageDownloader extends AsyncTask<String,Void,Bitmap> {
  46. ImageView bmImage;
  47.  
  48. public ImageDownloader(ImageView bmImage) {
  49. this.bmImage = bmImage;
  50. }
  51.  
  52. protected Bitmap doInBackground(String... urls) {
  53. String url = urls[0];
  54. Bitmap mIcon = null;
  55. try {
  56. InputStream in = new java.net.URL(url).openStream();
  57. mIcon = BitmapFactory.decodeStream(in);
  58. } catch (Exception e) {
  59. Log.e("Error",e.getMessage());
  60. }
  61. return mIcon;
  62. }
  63.  
  64. protected void onPostExecute(Bitmap result) {
  65. bmImage.setImageBitmap(result);
  66. }
  67. }

猜你在找的Android相关文章