Reputation: 12369
I simply would like to automate posts to Facebook for certain events to my corporate Facebook Page. It seems as though it should be straightforward from what I've read thus far, however I am running into a roadblock.
An example of some code I have and the error is as follows:
user = FbGraph::User.me(access_token)
user = FbGraph::User.fetch('PageName')
FbGraph.debug! # yields true
user.feed!(
:message => 'Updating via FbGraph',
:link => 'https://domain.tld',
:name => 'PageName',
:description => 'This is a test post to be deleted'
)
This returns the following error:
======= [FbGraph] API REQUEST STARTED =======
POST /234062246478665/feed HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 124
Host: graph.facebook.com
message=Updating+via+FbGraph&link=https%3A%2F%2Fdomain.tld&name=PageName&description=This+is+a+test+post+to+be+deleted
--------------------------------------------------
Status: 403 Forbidden
Access-Control-Allow-Origin: *
Cache-Control: no-store
Content-Type: text/javascript; charset=UTF-8
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Pragma: no-cache
WWW-Authenticate: OAuth "Facebook Platform" "insufficient_scope" "(#200) This API call requires a valid app_id."
X-FB-Rev: 541309
X-FB-Debug: JN9/Vt8MN24GNUL34l8TE2cDuCRZZehdUTx2KkOrHQ8=
X-Cnection: close
Date: Mon, 16 Apr 2012 18:55:20 GMT
Content-Length: 0
{"error":{"message":"(#200) This API call requires a valid app_id.","type":"OAuthException","code":200}}
======= [FbGraph] API REQUEST FINISHED =======
/Users/username/.rvm/gems/ruby-1.9.3-p125@all/gems/fb_graph-2.4.10/lib/fb_graph/exception.rb:55:in `handle_httpclient_error': OAuthException :: (#200) This API call requires a valid app_id. (FbGraph::Unauthorized)
from /Users/username/.rvm/gems/ruby-1.9.3-p125@all/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:145:in `handle_response'
from /Users/username/.rvm/gems/ruby-1.9.3-p125@all/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:54:in `post'
from /Users/username/.rvm/gems/ruby-1.9.3-p125@all/gems/fb_graph-2.4.10/lib/fb_graph/connections/feed.rb:15:in `feed!'
from ./test_script.rb:168:in `block in <main>'
from /Users/username/.rvm/gems/ruby-1.9.3-p125@all/gems/nokogiri-1.5.2/lib/nokogiri/xml/node_set.rb:239:in `block in each'
from /Users/username/.rvm/gems/ruby-1.9.3-p125@all/gems/nokogiri-1.5.2/lib/nokogiri/xml/node_set.rb:238:in `upto'
from /Users/username/.rvm/gems/ruby-1.9.3-p125@all/gems/nokogiri-1.5.2/lib/nokogiri/xml/node_set.rb:238:in `each'
from ./test_script.rb:85:in `each_with_index'
from ./test_script.rb:85:in `<main>'
On developers.Facebook.com/apps -> Settings -> Auth Dialog I am setting the Extended Permissions
to include publish_stream
and status_update
.
I have found that curl
access with the same token does indeed work as follows:
curl -F 'access_token=MY_BIG_OLE_LONG_TOKEN' -F 'message=testing message' https://graph.facebook.com/MyPage/feed
Am I missing the setting of a permission somewhere or not calling the api correctly with the fb_graph
ruby gem?
Upvotes: 3
Views: 2908
Reputation: 2774
You need to check out documentation for page of graph API. Check the field access_token
which manages_pages
. You need to set this option in the extended_permission
. The key here is getting the right token. The token in the text field may not work most of the time. You need to send GET
request to https://graph.facebook.com/YOUR_PROFILE_ID/accounts to obtain the correct token. Seems like you already got the correct one.
I have used koala
gem before. As posted here.
page_graph = Koala::Facebook::GraphAPI.new(@access_token)
page_graph.put_object('MyPage', 'feed', :message => 'This is posted as the page')
Well I must say facebook's API documentation lacks the developer friendliness. You need to dig deep for getting even the simplest things to work.
I hope this will help you to get started with automating the FB posts.
Upvotes: 3