这是我在我的应用程序中实现 Koala 的方式,并且我已经成功地获得了页面的对话(不是通过 RealtimeUpdates)。这是我的做法 -
我将以下内容添加到我的Gemfile
gem 'omniauth-facebook'
gem 'koala'
我为 facebook 凭据创建了一个 YAML 文件 -
development:
app_id: <APP ID>
secret: <APP Secret>
我在下面添加了以下initializers
内容config/initializers
1.Facebook 初始化程序为facebook.rb
-
FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env]
2.Omniauth 初始化程序为omniauth.rb
-
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, FACEBOOK_CONFIG['app_id'], FACEBOOK_CONFIG['secret'], {: scope => 'read_mailbox'}
end
权限read_mailbox
是关键。如果您不确定您是否有read_mailbox
权限,您可能需要Status and Review
在您的应用页面下的选项卡下请求它(见下面的屏幕截图) -
即使我没有使用RealTimeUpdates
,我也会执行以下操作来获取对话 -
def get_conversations(page_id)
access_token ||= Koala::Facebook::OAuth.new(FACEBOOK_CONFIG['app_id'], FACEBOOK['secret']).get_app_access_token
graph = Koala::Facebook::GraphAPI.new(access_token)
@fb_conversations = graph.get_object(page_id + '/conversations')
end
尝试使用您的访问令牌访问Graph API 资源{page_id}/conversations
管理器,看看您是否遇到错误。