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

时间:2015-01-13 20:01:54

标签: android image twitter

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

由于

4 个答案:

答案 0 :(得分:17)

来自官方文件:

  

您可以从GET users/show获取用户最新的个人资料图片。在用户对象中,您将找到profile_image_url   和profile_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

答案 1 :(得分:13)

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

答案 2 :(得分: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;

答案 3 :(得分: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) {

                        }
                    });