当用户通过Facebook注册我的应用时,我想显示他管理的所有页面。
这是我从FB API保存数据的方式:
def self.create_user_from_facebook(auth_hash)
self.create({
:facebook_uid => auth_hash["uid"],
:name => auth_hash["info"]["name"],
})
end
这里我是如何打印出页面列表的:
- fbpages(@user).each do |page|
= f.label :fbpage, value: page.identifier, :class => 'radio' do
= f.radio_button :fbpage, page.identifier
= link_to page.name, page.link, target: '_blank'
fbpages
方法:
def fbpages(user)
if user.fbtoken.present?
begin
fbpages = FbGraph::User.me(user.fbtoken).accounts
rescue
user.update_attribute(:fbtoken, nil)
fbpages = nil
end
end
end
fbtoken
是access_token
。但是我怎么能得到这个令牌呢?我试图在auth_hash
方法中打印出包含create_user_from_facebook
的内容,但我没有看到 access_token 。
我做错了什么?
答案 0 :(得分:0)
您可以在FBGraph
page上看到:
// code is set
// we'll send that and get the access token
graph.authorize({
"client_id": conf.client_id
, "redirect_uri": conf.redirect_uri
, "client_secret": conf.client_secret
, "code": req.query.code
}, function (err, facebookRes) {
res.redirect('/UserHasLoggedIn');
});
code
包含在用户登录Facebook应用程序后获取的重定向网址的参数中。获得此code
后,即可使用此示例。