0

使用 fb_graph gem

从 facebook 用户处获取基本信息:

fb_user = FbGraph::User.new(FB_USER_ID)
fb_user = fb_user.fetch

这很好用。

现在我还需要访问传记和位置

fb_user.bio 
fb_user.location.name

位置为零,所以我收到一个错误,生物是空白的。

在 Facebook API 文档http://developers.facebook.com/docs/reference/api/user/

看起来 bio 需要 user_about_me 或 friends_about_me 权限。

所以我认为这应该意味着我需要为我的应用程序生成一个访问令牌,我这样做了:

app = FbGraph::Application.new(FB_APP_ID, :secret => FB_APP_SECRET)                         
access_token = app.get_access_token() 
fb_user = FbGraph::User.new(authentication.uid, access_token)

但后来我得到:

undefined method `[]' for GENERATED_TOKEN:Rack::OAuth2::AccessToken::Legacy

我不太确定如何解决这个问题。这是我使用 Facebook API 的第一天

问题:如何获得我的应用程序的扩展权限以获取生物和用户位置?

4

1 回答 1

0

为了扩展权限,您必须在 OmniAuth 提供程序配置中添加它们

provider :facebook, APP_ID, APP_SECRET, {:scope => 'publish_stream,offline_access,email'}

然后您将有权在用户时间轴等中发布。

您也可以按照这个有点旧的教程进行操作,但您可以使用这些概念

Facebook 与 Omniauth 和 Devise on Rails 3 的集成

权限

Facebook 提供的权限在 Facebook 网站本身中可用。

签入此链接Facebook 权限

于 2012-11-18T22:27:06.733 回答