2012-04-16 2 views
3

나는 단순히 회사의 Facebook 페이지에 특정 이벤트를 보내기 위해 Facebook에 대한 게시물을 자동화하고 싶습니다. 내가 지금까지 읽은 것에서부터 직설적 인 것처럼 보이지만, 나는 장애물에 부딪치고있다.루비 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 대화 상자 Extended Permissionspublish_streamstatus_update을 포함하도록 설정합니다.

나는 다음과 같은 토큰을 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_token 필드에 manages_pages을 확인하십시오. extended_permission에서이 옵션을 설정해야합니다. 여기서 핵심은 올바른 토큰을 얻는 것입니다. 텍스트 필드의 토큰이 대부분 작동하지 않을 수 있습니다. 올바른 토큰을 얻으려면 GET 요청을 https://graph.facebook.com/YOUR_PROFILE_ID/accounts에게 보내야합니다. 너는 이미 올바른 것을 얻은 것 같아.

나는 koala 보석을 사용했습니다. 게시 됨 : here. page_graph.put_object('MyPage', 'feed', :message => 'This is posted as the page')


page_graph = Koala::Facebook::GraphAPI.new(@access_token)

이 잘 나는 페이스 북의 API 문서는 개발자의 편의를 결여 말을해야합니다. 가장 단순한 작업을하기 위해 깊이 파고 들어야합니다.

FB 게시물을 자동화하는 데 도움이되기를 바랍니다.

+0

도움이되었습니다. 또 다른 것은 테스트 사용자와 페이지를 함께 사용하는 경우입니다. 페이지에 게시가 실패합니다. 실제 계정에서는 예상대로 작동합니다. –