1

Facebook API 支持通过以下方式在响应中选择嵌套对象的选定字段:

GET graph.facebook.com
  /me?
    fields=albums{name, photos{name, picture}}

参考:https ://developers.facebook.com/docs/graph-api/using-graph-api#reading - 部分:制作嵌套请求

使用Koala Ruby Gem 向 Facebook API 发送请求时,指定嵌套字段的语法是什么?

在此 wiki 页面https://github.com/arsduo/koala/wiki/Graph-API#getting-public-data上给出了以下示例:

client = Koala::Facebook::API.new(oauth_token)
client.get_connection('someuser', 'posts',
                    {limit: @options[:max_items],
                      fields: ['message', 'id', 'from', 'type',
                                'picture', 'link', 'created_time', 'updated_time'
                        ]})

因此,为了添加 Facebook API 端点支持的字段,我们传入一个包含fields键的哈希和一个支持字段名称的数组,例如['message', 'id', 'from'].

如果任何字段表示一个具有自己属性的对象,例如页面的 Rating 端点返回OpenGraphRating节点列表并且 OpenGraphRating 对象具有以下属性open_graph_story,即对象,那么我们如何在使用时指定嵌套属性考拉的fields语法?

直接使用端点时,如下所示:

page-id/ratings?fields=created_time,has_rating,has_review,open_graph_story{id},rating,review_text,reviewer
4

1 回答 1

0

我也陷入了同样的困境。我发现考拉将字段作为字符串数组,然后从中生成查询字符串。所以对于嵌套属性,我们可以直接写为

     client.get_connection('someuser', 'posts',
                {limit: @options[:max_items],
                  fields: ['albums{name, photos{name, picture}}','comments.summary(true).limit(100){likes.summary(true),from,message,created_time,comments.summary(true).limit(100){likes.summary(true),from,message,created_time}}', 'id', 'from', 'type',
                             'link', 'created_time', 'updated_time'
                    ]})
于 2016-07-05T08:57:30.657 回答