通过考拉访问Facebook公共数据

时间:2013-08-04 15:23:07

标签: facebook ruby-on-rails-3 koala

我想获取公开的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'

为什么这不起作用?如果此类请求不需要访问令牌,为什么需要身份验证?

2 个答案:

答案 0 :(得分:1)

您需要转义网址中的某些字符,如下所示:

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

或者您可以使用CGI::escape方法为您进行转义。

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

答案 1 :(得分:0)

通常,错误代码2500是权限被拒绝(您需要具有访问令牌),但是当您尝试访问公共信息时,这会让您感到困惑。访问数据时尝试使用应用程序访问令牌。对于生成 APP access_token ,请向此网址发送GET请求

  

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

我希望这会有所帮助。否则我会有更多的想法。