Получить данные сообщения, используя идентификатор, предоставленный facebook realtime-api

Я использую API Facebook в реальном времени, так как получаю только обновления и должен получать все данные, снова заходя на сервер. У меня есть страница, мое приложение добавлено к ней, поэтому я получаю фид страницы (например, комментарий, сообщение, все). Когда какой-либо пользователь публикует сообщения на странице, мы получаем обновление от API обновления Facebook в реальном времени. Но когда я пытаюсь получить данные публикации с помощью драгоценного камня Koala, это дает мне ошибку, обратите внимание, что ошибка возникает не в случае обновления с самой страницы (администратора страницы), а когда какой-то другой пользователь публикует на ней. Ниже приведен код для справки: -

Попытка получения с использованием долгоживущего токена страницы, и без этого тоже, терпит неудачу в обоих направлениях

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

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

Ответ JSON от facebook: -

{"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]

Пожалуйста, помогите мне понять, как получить общедоступные данные публикации, используя post_id, предоставленный API-интерфейсом обновлений в реальном времени facebook.


person Nishutosh Sharma    schedule 13.07.2014    source источник


Ответы (1)


Вопрос: как получить данные общедоступного поста, используя post_id, предоставленный API-интерфейсом обновлений в реальном времени facebook.

Для извлечения общедоступных данных сообщения со страницы вам нужно будет указать оба идентификатора (идентификатор страницы, а также идентификатор сообщения), которые вы получаете в форме обращения RT fb.

Вам нужно будет передать идентификатор как <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
person RAJ    schedule 17.07.2014