Page Management - nov/fb_graph GitHub Wiki

Page Management

You need the page’s access token to manage your page.
Your (an user’s) access token doesn’t work here.

See this official document for more details.
https://developers.facebook.com/docs/reference/api/page/

Settings

# Get an access token of page.
page = FbGraph::Page.new('FbGraph').fetch(
  :access_token => USER_ACCESS_TOKEN,
  :fields => :access_token
)

# List of all *enabled* settings
page.settings

# Ask each setting is enabled or disabled
page.users_can_post?        # => boolean
page.users_can_post_photos? # => boolean
page.users_can_tag_photos?  # => boolean
page.users_can_post_videos? # => boolean

# Enable each setting
page.users_can_post!        # => boolean
page.users_can_post_photos! # => boolean
page.users_can_tag_photos!  # => boolean
page.users_can_post_videos! # => boolean

# Disable each setting
page.users_cannot_post!        # => boolean
page.users_cannot_post_photos! # => boolean
page.users_cannot_tag_photos!  # => boolean
page.users_cannot_post_videos! # => boolean

# You can enable/disable settings like this too.
page.enable!(:users_can_tag_photos)
page.disable!(:users_can_tag_photos)

Tabs

# Get an access token of page
page = FbGraph::Page.new('FbGraph').fetch(
  :access_token => USER_ACCESS_TOKEN,
  :fields => :access_token
)

# List of all installed tabs (includes wall & info tabs)
tabs = page.tabs

# Install a tab
tab = page.tab!(:app_id => APP_ID_YOU_WANT_TO_INSTALL)

# Update an existing tab
tab.update(
  :custom_name => 'Custom Name',
  :position => 1
)

# Uninstall a tab
tab.destroy

Publish / Schedule Page Posts

page = FbGraph::Page.new('FbGraph').fetch(
  :access_token => ACCESS_TOKEN,
  :fields => :access_token
)

posts = page.promotable_posts

posts.publishable? # => boolean
posts.schedulable? # => boolean
posts.scheduled?   # => boolean

# Schedule (or Re-schedule) Post
posts.first.schedule!(7.day.from_now) # => true or raise exception

# Cancel Current Post Schedule
posts.first.unschedule! # => true or raise exception

# Publish Immediately
posts.first.publish! # => true or raise exception

NOTE:
Unpublishing posts is not allowed.
This means that once you published a page post accidentally, you have to ask the page owner to unpublish it manually.
And of course, you can’t schedule already published posts.

⚠️ **GitHub.com Fallback** ⚠️