Facebook在rails用户中签名如何访问其信息并获得订阅

时间:2013-02-04 07:08:08

标签: ruby-on-rails facebook-graph-api omniauth facebook-access-token koala

我使用omniauth从facebook登录用户,我也在我的devise.rb初始化文件中使用devise gem。我添加了

config.omniauth :facebook, app_id, app_secret,
    {:scope => 'email, offline_access', :client_options => 
      {:ssl =>
          {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}
      }
    }

并且它完美地工作,因为我在我的应用程序中有用户'登录',但问题是我没有得到如何继续获取用户个人资料信息及其朋友信息以及订阅和状态更新。

有图表Api方法可用

@graph = Koala::Facebook::API.new(acess_token)
    @profile = @graph.get_object("me")
    @friends = @graph.get_connections("me", "friends")

但是我没有得到如何让“acess_token”来做所有这些事情。

总结一下,我需要AccessToken,请提供明确的答案plzz

等待您的回复

1 个答案:

答案 0 :(得分:0)

yahooo得到了它:)

在下面的方法 $ access_token = auth.credentials.token 语句中指向获取访问令牌。

def self.find_for_provider_oauth(auth, signed_in_resource=nil)
    user = User.where(:provider => auth.provider, :uid => auth.uid).first
    $access_token = auth.credentials.token
    unless user

      user = User.create(name:auth.extra.raw_info.name,
        provider:auth.provider,
        uid:auth.uid,
        email:auth.info.email,
        password:Devise.friendly_token[0,20]
      )
    end
    user
  end

或者你可以通过这个获得它

request.env["omniauth.auth"].credentials.token

有没有其他最好的方式来获取access_token plzz共享我需要优化和良好实践,但现在它的工作。