Я использую Graph API и мне нужно получать изображения профилей пользователей по их UID. Это легко сделать: http://graph.facebook.com/[Facebook UID] / картинка
Я помню, некоторое время назад на этих фотографиях в профиле был небольшой логотип Facebook (помет 'f'-char). Но теперь я получаю только фотографии профиля без этого логотипа.
Как получить изображения с этим логотипом 'f'?
Facebook не хранит изображения с включенной буквой 'f', поэтому немного хакерски их получать.
Я обнаружил, что это работает:
Вам понадобитсяокончательный URL-адрес изображения после перенаправлений graph.facebook.com/[id]/picture.
http://external.ak.fbcdn.net/safe_image.php?&url=[imageurl]&logo
например. мне
На основании ответа Тома, вот пример php, чтобы получить пользователя
$_json = json_decode(file_get_contents('http://graph.facebook.com/[FACEBOOK_UID]?fields=picture')); if (isset($_json->picture)) { header("Location: http://external.ak.fbcdn.net/safe_image.php?&url=" . $_json->picture . "&logo"); exit; }
Вот что мы делаем:
С помощью jQuery и JS API вы можете сделать вызов FQL:
FB.api({ method: 'fql.query', query: 'SELECT uid, pic_with_logo FROM user WHERE uid = me()' }, function(response) { var user = response[0]; $('#container').append('<img src="'+user.pic_with_logo+'"/><br>'); });
, также вы можете попробовать: pic_small_with_logo, pic_big_with_logo, pic_square_with_logo и pic_with_logo, которые я используюв примере.
pic_small_with_logo
pic_big_with_logo
pic_square_with_logo
pic_with_logo
вот пользовательская таблица: https://developers.facebook.com/docs/reference/fql/user/
Я думаю, что это невозможно с помощью графика API.
Можно было использовать FQL (не знаю, работает ли он по-прежнему):
SELECT pic_with_logo FROM user WHERE uid = "..."
или используйте xfbml с <fb:profile-pic facebook-logo="true">
<fb:profile-pic facebook-logo="true">