0

업데이트 만 받아서 서버를 다시 쳐서 전체 데이터를 가져와야하므로 Facebook 실시간 API를 사용하고 있습니다. 나는 페이지를 가지고 있기 때문에 내 앱이 페이지 피드 (예 : 댓글, 게시물, 전체)를 얻고 있습니다. 사용자가 페이지에 게시하면 Facebook 실시간 업데이트 api에서 업데이트를받습니다. 하지만 코알라 보석을 사용하여 게시물 데이터를 가져 오려고하면 오류가 발생합니다. 오류는 페이지 자체에서 업데이트 (페이지 관리)가 아닌 다른 사용자가 게시 할 때 발생합니다. 는 다음 도움 코드입니다 : -facebook에서 제공 한 ID를 사용하여 게시물의 데이터를 가져옵니다. realtime-api

사용 가져 오기 위해 노력하는 긴 두 가지 실패, 페이지 토큰 살고, 너무없이 페이스 북에서

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

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

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의 실시간 업데이트 api에서 제공하는 post_id를 사용하여 공개 게시물 데이터를 가져 오는 방법을 이해할 수 있도록 도와주세요.

답변

1

Q : 페이스 북의 실시간-업데이트 API에서 제공하는 post_id를를 사용하여 공공 후 데이터를 가져 오는 방법에 대해 설명합니다.

페이지에서 게시물의 공공 데이터를 가져 오는 경우, 당신은 당신이 RT에 받고있는 아이디 (페이지 ID뿐만 아니라 포스트 ID가) 형태의 FB를 공격 모두 지정해야합니다.

<page_id>_<post_id>으로 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 
+0

그것은 나를 위해 일했습니다. –

관련 문제