2013-08-04 39 views
2

我希望得到公衆的Facebook信息,如訪問Facebook的公開數據

https://graph.facebook.com/http://www.google.com 

當我做

@graph = Koala::Facebook::API.new 
@graph.get_object("http://www.google.com") 

我得到

Koala::Facebook::AuthenticationError: type: OAuthException, code: 2500, message: Unknown path components: /www.google.com [HTTP 400] 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/koala-1.6.0/lib/koala/api/graph_api.rb:470:in `block in graph_call' 

爲什麼這一工作不?以及爲什麼需要身份驗證,如果訪問令牌不需要這樣的請求?

回答

1

你需要逃避的某些字符的URL,就像這樣:

@graph.get_object("http%3A%2F%2Fwww.google.com") 

或者你可以使用CGI::escape方法做轉義爲您服務。

@graph.get_object(CGI::escape("http://www.google.com")) 
+0

! –

0

一般來說,錯誤代碼2500是拒絕權限(您需要有訪問令牌),但是當您試圖訪問公共信息時,它會引起混淆。訪問數據時嘗試使用應用程序訪問令牌。用於生成APP的access_token發送一個GET請求到該URL

GET https://graph.facebook.com/oauth/access_token? CLIENT_ID = YOUR_APP_ID & client_secret = YOUR_APP_SECRET & grant_type = client_credentials

我希望這將有助於。否則,我有更多的想法。

+0

我試圖以'@ G =考拉:: ::實API.new(考拉:: ::實OAuth.new(ENV [ 'FACEBOOK_APP_ID'],ENV [ 'FACEBOOK_SECRET'])。get_app_access_token )'仍然無法正常工作 –