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

gel*_*yke 8 twitter android image

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

谢谢

eld*_*o87 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);
    }
});
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Twitter API文档| 个人资料图片和横幅


San*_*Ram 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);
                        }
                    });
Run Code Online (Sandbox Code Playgroud)


gel*_*yke 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) {

    }
});
Run Code Online (Sandbox Code Playgroud)

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

User user = userResult.data;
Run Code Online (Sandbox Code Playgroud)

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

String profileImage = user.profileImageUrl;
Run Code Online (Sandbox Code Playgroud)


Ami*_*ati 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) {

                        }
                    });
Run Code Online (Sandbox Code Playgroud)