2012-04-16 11 views
3

私は、企業のFacebookページへの特定のイベントのためにFacebookへの投稿を自動化したいと思っています。それは私がこれまでに読んだことからまっすぐにすべきだと思われますが、私はロードブロッキングに走っています。ruby​​ fb_graphを使ってFacebookページの更新を投稿するには?

私は、エラーが次のようにいくつかのコードの例:これは、次のエラーを返し

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' 
) 

developers.Facebook.com/appsで

======= [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/[email protected]/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/[email protected]/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:145:in `handle_response' 
    from /Users/username/.rvm/gems/[email protected]/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:54:in `post' 
    from /Users/username/.rvm/gems/[email protected]/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/[email protected]/gems/nokogiri-1.5.2/lib/nokogiri/xml/node_set.rb:239:in `block in each' 
    from /Users/username/.rvm/gems/[email protected]/gems/nokogiri-1.5.2/lib/nokogiri/xml/node_set.rb:238:in `upto' 
    from /Users/username/.rvm/gems/[email protected]/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>' 

を - >設定 - > Authダイアログpublish_streamstatus_updateを含むようにExtended Permissionsを設定しています。私は次のように同じトークンを使用してcurlアクセスが実際に動作しないことが判明した

curl -F 'access_token=MY_BIG_OLE_LONG_TOKEN' -F 'message=testing message' https://graph.facebook.com/MyPage/feed 

は、私がfb_graphルビーの宝石で正しくAPIを呼び出すどこかではないパーミッションの設定をしないのですか?

答えて

3

グラフAPIのpageのドキュメントをチェックアウトする必要があります。フィールドaccess_tokenmanages_pagesです。 extended_permissionにこのオプションを設定する必要があります。ここの鍵は正しいトークンを得ることです。テキストフィールドのトークンはほとんどの場合動作しません。正しいトークンを取得するには、GETリクエストをhttps://graph.facebook.com/YOUR_PROFILE_ID/accountsに送信する必要があります。あなたはすでに正しいものを手に入れているようです。

私は以前にkoalaの宝石を使用しました。投稿された通りhere

page_graph = Koala::Facebook::GraphAPI.new(@access_token)
page_graph.put_object('MyPage', 'feed', :message => 'This is posted as the page')

まあ、私はFacebookのAPIドキュメントは、開発者の使いやすさを欠い言わなければなりません。あなたは、最も簡単なものを稼働させるために深く掘り下げる必要があります。

FB投稿を自動化するのに役立つことを願っています。

+0

これは助けになりました。私が遭遇したもう一つのことは、あなたがページでテストユーザーを使用している場合でした。ページへの投稿は失敗します。実際のアカウントでは期待どおりに動作します。 –

関連する問題