Próbuję zaimplementować prostą aplikację, która używa zestawu Twitter. Problem polega na tym, że nie jestem w stanie uzyskać obrazu profilu. Każda pomoc byłaby doceniona.Jak uzyskać zdjęcie profilowe w Androidzie za pomocą zestawu Twitter,
Dzięki
Próbuję zaimplementować prostą aplikację, która używa zestawu Twitter. Problem polega na tym, że nie jestem w stanie uzyskać obrazu profilu. Każda pomoc byłaby doceniona.Jak uzyskać zdjęcie profilowe w Androidzie za pomocą zestawu Twitter,
Dzięki
Znaleziono odpowiedź.
Istnieje wywołanie zwrotne, które umożliwia powrót obiektu użytkownika.
Twitter.getApiClient().getAccountService().verifyCredentials(true, false, new Callback<User>() {
@Override
public void success(Result<User> userResult) {
}
@Override
public void failure(TwitterException e) {
}
});
Na oddziale sukces, można uzyskać obiekt użytkownika poprzez wywołanie:
User user = userResult.data;
I z tego obiektu można uzyskać tworząc wszystkich informacji user.For op
String profileImage= user.profileImageUrl;
Z oficjalnego dokumentu:
Możesz uzyskać od nas Najnowszy profil profilu er od
GET users/show
. W obiekcie użytkownika znajdziesz polaprofile_image_url
iprofile_image_url_https
. Te pola będą zawierać zmieniony "normalny" wariant przesłanego obrazu użytkownika przez użytkownika . Ten "normalny" wariant ma zwykle rozmiar 48 x 48 pikseli.Modyfikując adres URL, można pobrać inne rozmiary wariantu, takie jak "większy", "mini" i "oryginalny".
Po kodzie:
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);
}
});
W celu uzyskania dalszych informacji patrz Twitter API Documentation | Profile Images and Banners
z Gradle 2.0.0 i do użytku następujący sposób:
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) {
}
});
Począwszy od listopada 2016 r. To działa. Występuje zmiana we wdrażaniu weryfikacji danych uwierzytelniających.
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);
}
});
To działa, dziękuję! – Michalsx
To działa dobrze, dziękuję. To pobieranie wersji obrazu o bardzo niskiej rozdzielczości. Czy byłeś w stanie uzyskać lepszą jakość? –
Próbowałem w ten sam sposób, ale ani sukces, ani niepowodzenie w nazwie – NarendraJi
getApiClient nie może zostać rozwiązany? –