Согласно документации API Graph Facebook , параметр fields
действует как маска результата:
По умолчанию большинство свойств объекта возвращаются при выполнении запроса,Вы можете выбрать поля (или соединения), которые хотите вернуть, с помощью параметра запроса «fields».
Действительно, для большинства полей это работает нормально.Например, /7354446700?fields=name,picture
возвращает:
{
"name": "Grooveshark",
"id": "7354446700",
"type": "page",
"picture": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/203560_7354446700_6819703_q.jpg"
}
Однако, по какой-то причине, как только поле likes
добавляется в список fields
, все выходит из строя.Например, /7354446700?fields=name,picture,likes
возвращает:
{
"name": "Grooveshark",
"id": "7354446700",
"type": "page",
"picture": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/203560_7354446700_6819703_q.jpg",
"likes": {
"data": [
]
}
}
Еще более странно, если я опущу два других поля (name
и pictures
), отправив только likes
, я получу
{
"likes": {
"data": [
]
}
}
Причина, по которой я нахожу это странным, заключается в том, что "обязательные" поля (id
и type
), которые должны быть добавлены к каждому ответу, здесь не включены (хотя они были включается, когда fields=name,picture,likes
).
То, что, по-видимому, происходит, заключается в том, что параметр field=likes
, по-видимому, неправильно интерпретируется как запрос на Соединения , а не просто как маска поля, следовательно, data
сегмент, который обычно появляется, когда вы звоните /7354446700/likes
.
Есть ли для этого веская причина?Есть ли другой способ получить поле likes
без извлечения всего объекта?Я не могу себе представить, что это будет ожидаемое поведение, поэтому я предполагаю, что это ошибка, но я решил сначала спросить здесь, прежде чем регистрировать ее.