根据Facebook Graph API documentation,fields
param充当结果掩码:
默认情况下,进行查询时会返回大多数对象属性。 您可以选择要返回的字段(或连接) “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
字段而不获取整个对象?我无法想象这会是预期的行为,所以我认为这是一个错误,但我想在提交之前我先问这里。
答案 0 :(得分:1)
这确实是一个错误;我已经在内部进行了检查,还有一个尚未解决的任务可以解决这个问题,这个问题已经在我们的错误跟踪器中报告给我们了。
与此同时,页面的默认返回值将包含“赞”字段,即使它无法单独检索。