我正在尝试实现一个使用Twitter kit的简单应用程序。问题是我无法获取个人资料图片。如有帮助,将不胜感激。
谢谢。
谢谢。
根据官方文档:
您可以从
GET users/show
中获取用户最近的个人资料图片。在用户对象内,您将找到profile_image_url
和profile_image_url_https
字段。这些字段将包含用户上传图像的调整大小的“normal”变体。此“normal”变体通常为48x48px。通过修改URL,您可以检索其他变体大小,例如“bigger”,“mini”和“original”。
遵循以下代码:
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文档|个人资料图片和横幅
截至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) {
}
});