Android & Facebook SDK: декодирование изображений из /me/image graph call
EDIT: Anwser в конце этого сообщения.
Я пытаюсь получить изображение профиля пользователя Facebook благодаря встроенной функции SDK Facebook Request()
.
Я использую вызов /me/picture
, чтобы получить изображение профиля и преобразовать его в Bitmap
.
Звонок работает нормально, но я не знаю, как интерпретировать и анализировать результат, полученный от Facebook
Вот JSON
, который я получаю:
{
"FACEBOOK_NON_JSON_RESULT": "\u0000\u0010JFIF\u001\u0002\u0000\u0000\u0001\u0000\u0001\u0000\u0000 \u0000\u0004 *\u0000 \u0000C\u0000\u0006\u0004\u0005\u0006\u0005\u0004\u0006\u0006\u0005\u0006\u0007\u0007\u0006\Ь"
}
Я думаю, что это должно быть изображение профиля, но я не знаю, что с этим делать сейчас.
Если кто-то может сказать мне, как его декодировать, преобразовать в растровое изображение или какие данные он будет, я был бы признателен.
ПРИМЕЧАНИЯ: Я не хочу использовать какую-либо другую функцию, кроме Request(), например DecodeStream() или AsyncTask
Вот ответ:
При создании нового Request()
вам нужно добавить параметр "перенаправить" в false
:
Bundle params = new Bundle();
params.putBoolean("redirect", false);
Это вернет правильный URL-адрес изображения:
{
"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"
}
}
Ответы
Ответ 1
Попробуйте следующее:
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);
Если идентификатор является вашим идентификатором вашего профиля.
Для получения дополнительной информации проверьте это:
https://developers.facebook.com/docs/graph-api