Gem
Gemfile
gem "devise"
gem "omniauth-facebook"
gem "fb_graph"
Deviseの場合
- OmniAuthの設定に「status_update」と「publish_stream」を追加
- Facebook側の設定ページには権限の設定は無い、アプリ側で設定する(ハマった。。)
config/initializers/devise.rb
config.omniauth :facebook, Settings.facebook_id, Settings.facebook_secret, { scope: 'email, status_update, publish_stream' }
- permissionsに「status_update」「publish_stream」が存在する事を確認
FbGraph::User.me( current_user.facebook_token ).permissions.tapp
# =>
[
[0] :installed,
[1] :read_stream,
[2] :status_update,
[3] :photo_upload,
[4] :video_upload,
[5] :email,
[6] :create_note,
[7] :share_item,
[8] :publish_stream,
[9] :publish_actions
]
- ウォール投稿が成功する事を確認
me = FbGraph::User.me( current_user.facebook_token )
me.feed!(
message: 'Updating via FbGraph',
picture: 'https://graph.facebook.com/matake/picture',
link: 'https://github.com/nov/fb_graph',
name: 'FbGraph',
description: 'A Ruby wrapper for Facebook Graph API'
)