微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我在登录后使用Fabric插件Android工作室我得到了会话,用户名用户ID.还有电子邮件地址.但是找不到任何获取用户个人资料照片的选项.
/

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

固定

通过使用以下代码修复

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,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) {

    }
});

解决方法

尝试使用此代码获取用户个人资料照片.
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);
        }
    }

原文地址:https://www.jb51.cc/android/318245.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐