6

有谁知道是否有办法将登录的用户个人资料图片拉到应用程序中,以便在他们导航时将其放置在 ActionBar 上?

欢迎提示、提示、示例、下载 :)

如果你能帮助我,请假设我对基本 Java 之外的任何东西知之甚少!

再次感谢人们 x

4

3 回答 3

9

您可以使用 获取用户的个人资料图片/1.1/users/show.json。您可以参考REST API URL获取 Twitter 数据。

通过扩展,TwitterApiClient我们可以从 URL 中检索 Twitter 数据。

class MyTwitterApiClient extends TwitterApiClient {
    public MyTwitterApiClient(TwitterSession session) {
        super(session);
    }

    public UsersService getUsersService() {
        return getService(UsersService.class);
    }
}

interface UsersService {
    @GET("/1.1/users/show.json")
    void show(@Query("user_id") Long userId,
            @Query("screen_name") String screenName,
            @Query("include_entities") Boolean includeEntities,
            Callback<User> cb);
}

接下来,获取UsersService并调用它的 show 方法,传入定义的查询参数。我根据记录的参数定义了查询参数。

new MyTwitterApiClient(session).getUsersService().show(12L, null, true,
new Callback<User>() {
    @Override
    public void success(Result<User> result) {
        Log.d("twittercommunity", "user's profile url is "
                + result.data.profileImageUrlHttps);
    }

    @Override
    public void failure(TwitterException exception) {
        Log.d("twittercommunity", "exception is " + exception);
    }
});

礼貌:https ://twittercommunity.com/t/android-get-user-profile-image/30579/2

于 2015-03-20T13:06:51.147 回答
5

这就是我让我的工作的方式:

            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 profilebannerurl = userResult.data.profileBannerUrl;
                    String profileurl = userResult.data.profileImageUrl;

                }

                @Override
                public void failure(TwitterException e) {

                }
            });

我已将这段代码放在我的 LoginButton 回调方法中:

    loginButton.setCallback(new Callback<TwitterSession>() {
        @Override
        public void success(Result<TwitterSession> result) { <insert here> }
于 2015-05-03T18:29:45.927 回答
1

我使用自定义按钮完成了它,这是由它的 onClick 侦听器执行的代码:

TwitterAuthConfig authConfig =  new TwitterAuthConfig(TWITTER_API_KEY, TWITTER_API_SECRET);
Fabric.with(activity, new Twitter(authConfig));

TwitterCore.getInstance().getApiClient().getAccountService().verifyCredentials(false, false, new com.twitter.sdk.android.core.Callback<User>() {
    @Override
    public void success(Result<User> result) {
        Log.d(TAG, "Twitter log in success");

        String userName = result.data.screenName;
        int userId = result.data.id;
        String pictureUrl = result.data.profileImageUrl;
        String coverUrl = result.data.profileBannerUrl;
    }

    @Override
    public void failure(TwitterException e) {
        Log.d(TAG, "Twitter log in error : " + e.getMessage());
    }
});

如果他接受,我应该要求用户授权访问您的应用程序并让他登录。

于 2016-02-16T01:54:54.490 回答