Android et Facebook: Comment obtenir une photo de l'utilisateur connecté
Je utiliser la langue officielle Facebook SDK dans mon Application Android. Après que l'utilisateur se connecte, je peux obtenir l'uid et le nom de l'facebook de l'utilisateur comme suit:
Facebook mFacebook = new Facebook(APP_ID);
//... user logs in ...
//String jsonUser = mFacebook.request("me/picture"); //throws error
String jsonUser = mFacebook.request("me");
JSONObject obj = Util.parseJson(jsonUser);
String facebookId = obj.optString("id");
String name = obj.optString("name");
Je sais aussi que je peux accéder à la photo de profil avec ces liens:
https://graph.facebook.com/<facebookId>/picture
https://graph.facebook.com/<facebookId>/picture?type=large
J'aimerais utiliser ce code pour geht la photo de profil:
public static Drawable getPictureForFacebookId(String facebookId) {
Drawable picture = null;
InputStream inputStream = null;
try {
inputStream = new URL("https://graph.facebook.com/" + facebookId + "/picture").openStream();
} catch (Exception e) {
e.printStackTrace();
return null;
}
picture = Drawable.createFromStream(inputStream, "facebook-pictures");
return picture;
}
Mais il juste ne travail. Je reçois toujours le message d'erreur suivant:
SSL handshake failure: Failure in SSL library, usually a protocol error
Et je ne peux pas résoudre ce problème. Il semble être plutôt compliqué(look ici ou ici). Donc, ce que d'autres options sont là pour obtenir l'image d'un facebook de l'utilisateur qui a ouvert une session dans mon application?
source d'informationauteur Pascal Klein
Vous devez vous connecter pour publier un commentaire.
demande("moi/image") renvoie une erreur parce que le serveur renvoie un 302 (redirection vers l'url de l'image) et le facebook sdk ne gère pas cela.
où ID est ur ID de profil...
J'ai également eu ce problème il y a quelques temps. Ce que j'ai fait a été de télécharger l'image à l'aide d'une tâche asynchrone, et ensuite définir une ImageView avec l'image qui vient d'être téléchargé. Je vais coller l'extrait de code:
Ce code fonctionne pour moi. J'espère que ça marchera pour vous aussi.
Vous pouvez demander directement une URl qui contient votre jeton d'Accès:
Puis obtenir un décodé BitMap et de l'attribuer à l'affichage de l'image:
Pour l'affichage de la photo de profil de votre application, utilisez
ProfilePictureView
de Facebook SDK.Renvoyer Cette
Appelez simplement
setProfileId(String profileId)
.Il prendra soin de l'affichage de l'image.
Ajouter une ligne de code et qui sera résolu.
L'utiliser, (usuario est un GraphUser):
et de balisage xml: