我有一个rails应用程序,我希望能够发布到fb页面。我知道Koala是促进此功能的宝石。
我创建了一个Facebook应用程序,并有一个app_id& app_secret。
我的Facebook应用程序可以发布到页面还是需要由页面管理员完成?
应用程序访问令牌
Facebook应用程序也可以获得自己的访问令牌,这可以 用于管理实时更新和执行某些其他更新 无会话活动。要获取应用的访问令牌,只需运行:
@oauth = Koala::Facebook::OAuth.new(app_id, app_secret)
@oauth.get_app_access_token
https://github.com/arsduo/koala/wiki/OAuth
修改1 来自:https://github.com/arsduo/koala/wiki/Acting-as-a-Page和https://developers.facebook.com/docs/facebook-login/access-tokens/我知道我需要获取访问令牌,然后获取页面令牌:
@user_graph = Koala::Facebook::API.new(user_access_token)
pages = @user_graph.get_connections('me', 'accounts')
page_token = @user_graph.get_page_access_token(page_id)
@page_graph = Koala::Facebook::API.new(page_token)
@page_graph.get_object('me') # I'm a page
@page_graph.get_connection('me', 'feed') # the page's wall
@page_graph.put_wall_post('post on page wall') # post as page, requires new publish_pages permission
@page_graph.put_connections(page_id, 'feed', :message => message, :picture => picture_url, :link => link_url)
以上所有内容都是不言自明的,但我仍然坚持一个基本原则,即我的rails应用程序应该如何获取user_access_token。由于我希望所有帖子都由我的rails应用程序“作为一个页面”执行,我想成像这个user_access_token应该在rails应用程序中设置为常量,并且每次rails应用程序需要发布时都不会请求。
考拉主页说明这是可能的: 配置
大多数应用程序仅使用一个应用程序配置。宁 每次都必须提供该值,您可以配置考拉 使用全局设置:
# In Rails, you could put this in config/initializers/koala.rb
Koala.configure do |config|
config.access_token = MY_TOKEN
config.app_access_token = MY_APP_ACCESS_TOKEN
config.app_id = MY_APP_ID
config.app_secret = MY_APP_SECRET
# See Koala::Configuration for more options, including details on how to send requests through
# your own proxy servers.
end
https://github.com/arsduo/koala
由于我有app_id和app_secret,我仍然不确定如何获得上面所要求的access_token和app_access_token。
是的,我迷路了。
编辑2 当user_access_token过期时,我很困惑如何将其硬编码到koala.rb中?