我已经有一个Facebook应用程序,用户已经在使用它。我已经有了通过考拉发布到他们的墙上的功能。
@oauth = Koala::Facebook::OAuth.new options[:fb_application_id], options[:fb_secret_key]
@graph = Koala::Facebook::API.new @oauth.get_app_access_token
@graph.put_connections(fb_user_id, "feed", :message => 'sample message')
现在我想添加一个功能,其中我可以获取用户的页面ID并允许我的应用程序发布到该页面。
如下所示:
@oauth = Koala::Facebook::OAuth.new options[:fb_application_id], options[:fb_secret_key]
@graph = Koala::Facebook::API.new @oauth.get_app_access_token
@graph.put_connections 'the_page_id', 'feed', :message => 'this is a message to post'
上述行的结果是:
Koala::Facebook::ClientError: type: OAuthException, code: 200, message: (#200) The user hasn't authorized the application to perform this action [HTTP 403]
我已在应用端设置权限'manage_pages publish_actions publish_stream',并在用户授权应用时设置。
请帮忙。
谢谢!
答案 0 :(得分:4)
以下内容可能有所帮助,
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['KEY'], ENV['SECRET'], scope: 'manage_pages publish_pages publish_actions'
end
manage_pages
授予您访问用户管理页面的权限publish_pages
授予您作为页面发布的权限publish_actions
授予您以用户身份发帖的权限 PS:publish_stream
已被弃用。
答案 1 :(得分:0)
您必须将publish_stream和publish_actions权限添加到您的应用权限范围。