2012-11-15 72 views
0

使用fb_graph寶石如何使用fb_graph gem獲得對Facebook個人資料的擴展權限?

要得到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

問題:如何獲得我的應用的擴展權限以獲取生物和用戶位置?

+0

您是如何進行身份驗證的? – felipeclopes

+0

我正在使用OmniAuth gem + AuthOmni-Facebook gem – zabumba

回答

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

+0

我將user_about_me添加到範圍列表中,但我仍然沒有得到傳記和位置信息。但是,感謝這篇文章。這是有幫助的 – zabumba

+0

添加了所有這些{:scope =>'publish_stream,offline_access,email,user_about_me,user_location,user_website,user_hometown'}仍然是'nil' – zabumba

+1

您可以檢查我添加的鏈接中的所有權限 – felipeclopes

相關問題