Как я могу получить фотографию в facebook с набором пользовательского набора выбора (если они используют большое изображение). Если я использую type = "large" или "normal" или "small" в графике пути, тогда я получаю изображение, но оно не квадратное и не отображает представление пользователя. Итак, как я могу получить фотографию с квадратным типом и просмотр пользовательского набора
Graph API получает квадрат фотографии (100x100)
Ответ 1
Вы можете получить квадратное изображение более высоких размеров, чем стандартное для type=square
(размер будет всего 50x50 пикселей), запросив изображение с параметрами width
и height
.
См. https://developers.facebook.com/docs/reference/api/user/, соединение "изображение", цитата:
"Кроме того, вы можете указать параметры URL ширины и высоты для запроса изображения определенного размера. Это вернет доступное изображение профиля ближайший к требуемому размеру и запрошенному соотношению сторон. [...] если width = height, мы всегда будем возвращать квадратное изображение."
Пример:
https://graph.facebook.com/4/picture?type=square - Мистер Цукербергс "нормальный" квадратный профиль pic, размер 50x50
https://graph.facebook.com/4/picture?width=100&height=100 - 100x100 пикселей, идеальное соответствие для запрашиваемого размера
https://graph.facebook.com/4/picture?width=150&height=150 - попросить 150x150, получив вместо этого 156x156.
Если вы можете жить, возможно, иногда получая изображения, которые могут быть немного больше (или меньше), а затем запрошенный размер, вы должны быть в порядке.
В противном случае itll проведет некоторое тестирование, чтобы попытаться выяснить, есть ли определенные размеры квадратного изображения, которые Facebook всегда будет иметь "на складе" и доставлять точные соответствия, или если он может отличаться для каждого пользователя в зависимости от загруженного ими изображения.
Ответ 2
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{ @"fields" : @"id,name,picture.width(100).height(100)"}]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
}
вместо 100 вы можете положить 200, 300 зашифровать ответ и получить его с ключом
Ответ 3
Попробуйте использовать тип square
. Как показано ниже:
http://graph.facebook.com/[user_id]/picture?type=square
Размер квадрата ограничен 50x50. Если вам нужен большой размер, вам придется увеличить квадратную версию или обрезать большую версию.
Если вы не хотите получать и обрезать изображение самостоятельно, следуйте моему учебнику здесь для кода, чтобы сделать именно это. Это позволит вам создавать квадратные изображения размером более 50 пикселей.
Ответ 4
Это сработало для меня. Проверьте следующий запрос,
NSString * graphPath = [NSString stringWithFormat:@"%@?fields=photos.fields(id,link,source)", albumID];
Ответ 5
Получить фотографию, запросив данные профилей пользователя с помощью FQL. В вашем случае вам не нужен токен доступа. Существует столбец с именем pic_crop
, который является объектом, который содержит требуемый uri:
URL-адрес изображения квадратного профиля наибольшего размера для объекта на вопрос.
width
,height
: размеры пикселей этого изображения.left
,top
,right
,bottom
: выбраны пиксельные координаты выбранного пользователя для этого изображения профиля.
Используйте Graph API Explorer для тестирования вашего запроса.
Обновить. Из справочной информации по языку запросов Facebook (FQL):
Версия 2.0 API платформы Facebook - это последняя версия, где FQL будет доступен. Версии после 2.0 не будут поддерживать FQL. Перенесите свои приложения, чтобы использовать Graph API вместо FQL. Пожалуйста, смотрите нашу changelog для текущей информации о версии.