0

我正在使用 Facebook 实时 api,因为我只获得更新,并且必须通过再次访问服务器来获取整个数据。我有一个页面,我的应用程序已添加到该页面,因此我正在获取页面提要(如评论、帖子、全部)。当任何用户在页面上发帖时,我们会从 Facebook 实时更新 api 获取更新。但是,当我尝试使用 Koala gem 获取帖子数据时,它给了我错误,请注意,错误不是来自页面本身(页面管理员)的更新,而是其他一些用户在其上发布的情况。以下是帮助代码:-

尝试使用长寿命的页面令牌进行获取,如果没有它,两种方式都失败了

@@graph = Koala::Facebook::API.new ACCESS_TOKENS["facebook"]["page_token"]

@@public_graph = Koala::Facebook::API.new

来自 Facebook 的 JSON 响应:-

{"object"=>"page",
   "entry"=>
    [{"id"=>"123412341234234",
      "time"=>1412341234,
      "changes"=>
       [{"field"=>"feed",
         "value"=>
          {"item"=>"post",
           "verb"=>"add",
           "post_id"=>123412341234123,
           "sender_id"=>1234123412}}]}]}}

@@public_graph.get_object("123412341234123")
*** Koala::Facebook::ClientError Exception: type: GraphMethodException, code: 100, message: Unsupported get request. [HTTP 400]

@@graph.get_object("123412341234123")
*** Koala::Facebook::ClientError Exception: type: GraphMethodException, code: 100, message: Unsupported get request. [HTTP 400]

请帮助我了解如何使用 facebook 的 realtime-updates api 提供的 post_id 获取公共帖子数据。

4

1 回答 1

1

Q:如何使用facebook的realtime-updates api提供的post_id获取公开的post数据。

要从页面获取帖子的公共数据,您需要指定您在 RT 命中表单 fb 中获得的两个 ID(页面 ID 和帖子 ID)。

您需要将 id 作为<page_id>_<post_id>. 在您的情况下,它将是:

rt_hit = {"object"=>"page",
       "entry"=>
        [{"id"=>"123412341234234",
          "time"=>1412341234,
          "changes"=>
           [{"field"=>"feed",
             "value"=>
              {"item"=>"post",
               "verb"=>"add",
               "post_id"=>123412341234123,
               "sender_id"=>1234123412}}]}]}}

entry     = rt_hit["entry"].first // you may want to have loop instead of `first`
public_id = "#{entry['id']}_#{entry['changes'].first['value']['post_id']}"

@@public_graph.get_object(public_id) // fetch object
于 2014-07-17T06:35:34.990 回答