使用Koala从应用程序发布到用户的页面墙

时间:2014-08-29 05:22:47

标签: ruby-on-rails facebook permissions koala

我已经有一个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',并在用户授权应用时设置。

请帮忙。

谢谢!

2 个答案:

答案 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权限添加到您的应用权限范围。