Koala ruby​​ gem get_object字段参数中嵌套属性的语法

时间:2016-04-06 10:19:16

标签: facebook koala-gem

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发送请求时,指定嵌套字段的语法是什么?

在此维基页面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']

如果任何字段表示具有自己属性的对象,例如Page的评级端点返回OpenGraphRating个节点的列表,并且OpenGraphRating对象具有以下属性{{1这是一个对象,那么在使用Koala的open_graph_story语法时我们如何指定嵌套属性?

直接使用端点时,它就像:

fields

1 个答案:

答案 0 :(得分: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'
                    ]})