Из моих экспериментов с API Facebook выяснилось, что на самом деле нужно получить изображение, чтобы определить, является ли оно статическим по умолчанию или нет.
На момент написания статьи все загруженные на Facebook фотографии конвертируются в JPEG, а статические изображения по умолчанию в формате GIF.(Кстати, это не согласуется с некоторыми размерами миниатюр).
Поиск определенного файла GIF или определенного пути URL-адреса ненадежен (обратите внимание на то, что задействованы URL-адреса CDN и существуют разные статические файлы для мужчини женщина).Предполагая, что Facebook не перекодирует всю базу данных фотографий своих профилей, я полагаю, что поиск GIF достаточно надежен.
Вот пример функции PHP для этого.Я успешно проверил его со своими 120 друзьями на Facebook, и, похоже, он справился с работой.
public static function hasProfilePicture($fbuid)
{
/* Really stupid method to test if Facebook user has real profile picture
* based on Facebook returning a GIF image when you request a large photo.
* Use with care - for every profile there's an outgoing request! */
$r = get_headers("http://graph.facebook.com/$fbuid/picture?type=square");
return !array_search("Content-Type: image/gif",$r);
}