由于内置的Facebook SDK功能 Request()
,我试图获取Facebook用户的个人资料照片。
我正在使用 /me/picture
调用来获取个人资料照片并将其转换为 Bitmap
。
通话工作正常,但我不知道如何解释和解析从Facebook返回的结果
以下是 JSON
:
{ “FACEBOOK_NON_JSON_RESULT”:“ \ u0000 \ u0010JFIF \ u0000 \ u0001 \ u0002 \ u0000 \ u0000 \ u0001 \ u0000 \ u0001 \ u0000 \ u0000 \ u0000 \ u0004 * \ u0000 \ u0000C \ u0000 \ u000 \ u0006 \ U0004 \ u0005 \ u0006 \ u0005 \ U0004 \ u0006 \ u0006 \ u0005 \ u0006 \ u0007 \ u0007 \ u0006 \ b”的 }
我认为这应该代表个人资料图片,但我现在不知道该如何处理。
如果有人能告诉我如何解码它,将其转换为Bitmap或者它是什么类型的数据,我将不胜感激。
注意:我不想使用除Request()之外的任何其他函数,如DecodeStream()或AsyncTask
以下是答案:
制作新的Request()
时,您需要将“重定向”参数添加到false
:
Bundle params = new Bundle();
params.putBoolean("redirect", false);
这将返回正确的图片网址:
{
"data":{
"is_silhouette":false,
"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xpa1\/v\/t1.0-1\/p100x100\/10312434_10152395442477210_2933994167675146084_n.jpg?oh=f3c8cb920c97fcfa4dc5e17462445cbf&oe=54404A3A&__gda__=1412730795_5f288e34e5f6e63cb1c3791dcb142880"
}
}
答案 0 :(得分:3)
试试这个:
ImageView user_picture;
userpicture=(ImageView)findViewById(R.id.userpicture);
URL img_value = null;
img_value = new URL("http://graph.facebook.com/"+id+"/picture?type=large");
Bitmap mIcon1 = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());
userpicture.setImageBitmap(mIcon1);
其中ID是您的个人资料ID。
有关详细信息,请查看: