2014-08-29 105 views
3

我已经有一个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

我有同样的确切情况和收到相同的错误。你有没有设法解决这个问题? – 2015-03-12 22:15:56

+0

设法通过更新范围来解决这个问题'''manage_pages publish_pages publish_actions''' – koyz 2015-07-27 09:09:15

回答

0

您必须将publish_stream和publish_actions权限添加到您的应用程序权限范围。

+0

对不起,我忘了提及我也已经这样做了。 :) 谢谢!更新了我的帖子。 – koyz 2014-08-29 08:05:25

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已被弃用。

+0

非常感谢! – koyz 2015-08-04 12:05:58

+0

@koyz不客气! :-)如果这有帮助,请将答案标记为正确答案;-) – 2015-08-11 10:37:38

相关问题