如何使用Twitter工具包获取Android中的个人资料图片,

问题描述 投票:7回答:4

我正在尝试实现一个使用Twitter工具包的简单应用程序。问题是,我无法获得个人资料图片。任何帮助将不胜感激。

谢谢

android image twitter
4个回答
17
投票

来自官方文件:

您可以从GET users/show获取用户最新的个人资料图片。在用户对象中,您将找到profile_image_urlprofile_image_url_https字段。这些字段将包含用户上传图像的已调整大小的“普通”变体。这种“正常”变体通常为48x48px。

通过修改URL,您可以检索其他变体大小,例如“更大”,“迷你”和“原始”。

遵循以下代码:

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

有关更多信息,请参阅Twitter API Documentation | Profile Images and Banners


14
投票

截至2016年11月。这是有效的。验证凭据的实施发生了变化。

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

12
投票

找到了答案。

有一个回调函数可以返回User对象。

TwitterCore.getInstance().getApiClient().getAccountService().verifyCredentials(true, true, false).enqueue(new Callback<User>() {
    @Override
    public void success(Result<User> result) {

    }

    @Override
    public void failure(TwitterException exception) {

    }
});

在成功分支上,您可以通过调用获取User对象:

User user = userResult.data;

从这个对象,您可以从用户那里获得所有信息。对于个人资料图片:

String profileImage = user.profileImageUrl;

7
投票

从gradle 2.0.0开始使用以下方法:

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

                        }
                    });
© www.soinside.com 2019 - 2024. All rights reserved.