1

我已经能够使用检索事件详细信息

@graph = Koala::Facebook::API.new(access_token)
@eventSummary = @graph.get_object(eventId)

并使用邀请的用户列表

@eventSummary = @graph.get_connections(eventId,  "invited")

我想统计所有被邀请的用户,也许是被拒绝和接受的用户。我正在使用的

@eventSummary = @graph.get_connections(eventId,  "invited?summary=1")

这再次只给了我用户列表。当使用graph.facebook之类的

https://graph.facebook.com/***eventId***/invited?access_token=*****access_token****&summary=1

我正在计算结果。

    {
   “数据”: [
      {
         “名称”:“xyz”,
         "rsvp_status": "出席",
         “id”:“10000000123”
      }
   ],
   “分页”:{
      “下一个”:“https://graph.facebook.com/***eventId***/invited?summary=1&access_token=***accesstoken***&limit=5000&offset=5000&__after_id=100004389574321”
   },
   “概括”: {
      “noreply_count”:0,
      “也许计数”:0,
      “declined_count”:0,
      “参加人数”:1,
      “计数”:1
   }
}

为了解决问题,我使用 fql 得到结果,如:

@eventSummary = @graph.get_object("fql", :q => "SELECT all_members_count, attending_count, declined_count, not_replied_count, unsure_count FROM event WHERE eid = #{eventId}")

但这不方便使用。谁能帮忙,我做错了什么?获取事件 RSVP 计数。我正在使用 Rails v.3.2,用于使用 Koala gem 的 facebook。提前致谢。

4

1 回答 1

0

我也看到了,当您请求活动本身时,这些参与者计数字段不包括在内。您可以使用第二个参数来专门询问它们:

@eventSummary = @graph.get_object(eventId)
@eventSummary.merge(@graph.get_object(eventId, fields: "attending_count,declined_count,interested_count"))

第一次调用会获取您的“标准”事件详细信息,如下所示:

{"description"=>"Blah blah blah", 
 "name"=>"My Event Will Rock", 
 "place"=>{"name"=>"Venue Bar",
           "location"=>{"city"=>"Citytown", 
                        "country"=>"United States",
                        "latitude"=>43.05308, 
                        "longitude"=>-87.89614, 
                        "state"=>"WI", 
                        "street"=>"1216 E Brady St", 
                        "zip"=>"53202"}, 
           "id"=>"260257960731155"}, 
 "start_time"=>"2016-04-22T21:00:00-0500",
 "id"=>"1018506428220311"}

第二个调用只获取那些“附加”请求的字段:

{"attending_count"=>3,
 "declined_count"=>0,
 "interested_count"=>12,
 "id"=>"1018506428220311"}

您可以将它们存储在单独的变量中,或者按照我上面的建议,使用 hash#merge 方法。(这两个哈希的键之间不应该有任何有问题的重叠。)

或者,您可以通过显式请求您想要的所有内容,在一个请求中获取所有这些详细信息。

于 2016-04-13T22:54:53.103 回答