如何使用fb_graph gem获得对Facebook个人资料的扩展权限?

时间:2012-11-15 23:40:11

标签: ruby-on-rails-3 fb-graph

使用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/

看起来生物需要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的第一天

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

1 个答案:

答案 0 :(得分:0)

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

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

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

你也可以按照这个有点旧的教程,但你可以使用概念

Facebook Integration With Omniauth and Devise on Rails 3

<强>权限

Facebook提供的权限可在Facebook网站上找到。

检入此链接Facebook Permissions