2014-08-29 104 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

相關問題