facebook SDK 3.0を使用しています。ユーザーログインのプロフィール写真を取得する必要があります。これが私が使用するコードです:
URL image_value = new URL("http://graph.facebook.com/"+id+"/picture" );
profPict=BitmapFactory.decodeStream(image_value.openConnection().getInputStream());
しかし、希望する結果が得られません。
次のコードを変更する必要があります。
URL image_value = new URL("http://graph.facebook.com/"+id+"/picture" );
URLの可能なGETパラメータは、次の場所にあります。 https://developers.facebook.com/docs/graph-api/reference/user/picture/
http://の代わりにhttps://を使用します。同じ問題に直面しました。
URL image_value = new URL("https://graph.facebook.com/"+id+"/picture" );
profPict = BitmapFactory.decodeStream(image_value.openConnection().getInputStream());
アプリにプロフィール写真を表示する場合は、Facebook SDKのProfilePictureView
を使用してください。
その上でsetProfileId(String profileId)
を呼び出すだけです。
画像を表示します。
String id = user.getId();
try {
URL url = new URL("http://graph.facebook.com/"+ id+ "/picture?type=large");
String image_path = uri.toString();
System.out.println("image::> " + image_path);
}
catch (MalformedURLException e) {
e.printStackTrace();
}
Facebook SDKのProfilePictureView
を使用します。
これを試して..
try {
imageURL = new URL("https://graph.facebook.com/" +
id+ "/picture?type=large");
Log.e("URL", imageURL.toString());
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
try {
bitmap = BitmapFactory.decodeStream(imageURL
.openConnection().getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ProfileDp.setImageBitmap(bitmap);
スレッド内で次のようなことができます:
String url = "http://graph.facebook.com/"+id+"/picture";
HttpConnection conn = new HttpConnection(url);
conn.openConnection();
Drawable d = Drawable.createFromStream(new BufferedInputStream(conn.getInputStream()), "image");
conn.close();
お役に立てば幸いです。
Facebookアカウントがアプリケーションにログインしたら、次のようにします。
String url = Profile.getCurrentProfile().getProfilePictureUri(x, y).toString();
xとyは幅と高さです。
ドキュメントを参照してください: https://developers.facebook.com/docs/reference/Android/current/class/Profile/