我正在尝试实现一个使用Twitter工具包的简单应用程序。问题是,我无法获得个人资料图片。任何帮助将不胜感激。
由于
答案 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) {
}
});