是否可以使用Graph API为新页面帖子设置Facebook webhook?

时间:2016-08-18 04:06:40

标签: ruby-on-rails ruby facebook facebook-graph-api

我正在尝试使用Ruby on Rails构建一个应用程序,该应用程序从公共页面获取最新的Facebook帖子并以某种方式显示它们。

目前,我计划使用Koala gem和Graph API获取帖子get_connection

client = Koala::Facebook::API.new(oauth_token)
client.get_connection('someuser', 'posts',
                    {limit: @options[:max_items],
                      fields: ['message', 'id', 'from', 'type',
                                'picture', 'link', 'created_time', 'updated_time'
                        ]})

但是,我认为这需要我手动更新Feed,每X小时重新运行一次。如果可以设置一个侦听新帖子并相应更新它的webhook会更方便。我找到了下面的链接,但是不能理解它/这是否可行,或者是否有比我目前更好的方式。

https://developers.facebook.com/docs/graph-api/webhooks

如果有可能,我怎么能实现它,还是有另一种更好的方法?

2 个答案:

答案 0 :(得分:0)

我相信这是解决方案,但从未尝试过,如果我错了,你可以纠正我:

  1. 您的webhook必须包含feed(或其他内容)。
  2. 通过POST将订阅应用添加到https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=PAGE_ACCESS_TOKEN。访问令牌必须具有足够的权限(例如:manage_pages)。
  3. 希望它有所帮助!

答案 1 :(得分:0)

实现它有两个步骤,首先您需要将您的应用程序挂在webhook上,以获取可以使用Facebook应用程序面板控件或使用Koala实时更新(webhook references)执行此操作的页面,然后您需要将您的应用添加到页面的订阅应用中。以下是我用于这些步骤的代码:

#subscribe app @updates = Koala::Facebook::RealtimeUpdates.new(app_id: facebook_app_id,secret: facebook_app_secret) @updates.subscribe("page", "feed", callback_url, verify_token)

#subscribe page api = Koala::Facebook::API.new(page["access_token"]) api.graph_call("#{page["id"]}/subscribed_apps",{},"post",{})

如果您不知道页面access_token,请参阅 Koala wiki

重要提示:您需要使用协议" https"对于callback_url和verify_token大小不能超过64