#ruby-on-rails #facebook-graph-api #haml #koala
#ruby-на-рельсах #facebook-graph-api #haml #koala #ruby-on-rails
Вопрос:
в настоящее время я использую koala, и, похоже, все работает, хотя при попытке использовать следующее, чтобы получить лайки на определенных сообщениях, все, что я, похоже, получаю, это массив элементов
код в помощнике приложения
def facebook
@facebook ||= Koala::Facebook::API.new(current_user.oauth_token)
block_given? ? yield(@facebook) : @facebook
rescue Koala::Facebook::APIError
logger.info e.to_s
nil
end
def likes_count obj
facebook.get_object(obj, :fields => "likes.summary(true)")
end
код в поле зрения
=likes_count(feed['id'])
возвращенные результаты
{"id"=>"846011512095715", "updated_time"=>"2014-06-22T11:11:45 0000", "likes"=>{"data"=>[{"id"=>"10152444475716893", "name"=>"Tahlia Fulton"}, {"id"=>"10152240895519022", "name"=>"Tim Raftery"}, {"id"=>"481256765338477", "name"=>"Gabby Taylor"}, {"id"=>"664803753573900", "name"=>"Harriet Ochsenbein"}, {"id"=>"10152453604228810", "name"=>"Kelly Jenkinson"}, {"id"=>"10152145864189249", "name"=>"David Glazzard"}, {"id"=>"10203193488711772", "name"=>"Bianca Love"}, {"id"=>"10152567265688833", "name"=>"Clare Duncan"}, {"id"=>"105513176145556", "name"=>"Frankston Hockey Club"}], "paging"=>{"cursors"=>{"after"=>"MTA1NTEzMTc2MTQ1NTU2", "before"=>"MTAxNTI0NDQ0NzU3MTY4OTM="}}, "summary"=>{"total_count"=>9}}}
Ответ №1:
Лайки за публикацию:
likes = @graph.get_object('post_id', :fields => "likes.summary(true)")["likes"]["summary"]["total_count"]
На случай, если кто-нибудь столкнется с этим, а также захочет узнать количество акций и комментариев:
Делится публикацией:
shares = @graph.get_object('post_id', :fields => "shares")["shares"]["count"]
Комментарии к сообщению:
comments = @graph.get_object('post_id', :fields => "comments.summary(true)")["comments"]["summary"]["total_count"]
Или, если вы предпочитаете хэш всех трех:
post_kpis = @graph.get_connections(@post, 'insights', metric: 'post_storytellers_by_action_type').first["values"].first["value"]
Чтобы получить всю информацию о вашем посте:
post_insights = @graph.get_connections(@post, 'insights')
Комментарии:
1. Хэш всех 3, и insights, похоже, больше не работает. Можно получить те же результаты с:
graph.get_object(post_id, :fields => "shares,likes.summary(true),comments.summary(true)")
Ответ №2:
Попробуйте @graph.get_connections(post_id, "likes")
предоставить Koala::Facebook::API::GraphCollection
объект, который вы можете вызвать .next_page
, чтобы просмотреть весь список лайков.