我正在尝试实现一个使用Twitter工具包的简单应用程序。问题是,我无法获得个人资料图片。任何帮助将不胜感激。
谢谢
来自官方文件:
您可以从
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
截至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);
}
});
找到了答案。
有一个回调函数可以返回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;
从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) {
}
});