如果我已经有了 access_token,如何获取 omniauth 哈希?

How to get omniauth hash if I already have the access_token?

目前我是这样实现的。

def auth_hash
    url = URI.parse('https://graph.facebook.com/me')

    url.query = URI.encode_www_form('access_token' => @token, 'fields' => 'email, name, first_name, last_name, gender')
    req = Net::HTTP::Get.new url.request_uri

    http = Net::HTTP.new(url.host, url.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    response = nil
    http.start do |get|
      response = get.request(req)
    end
    response
end

我的 IOS 应用程序执行回调并发送访问令牌以通过我们的服务器进行身份验证。

我使用上面的方法 returns 来自图表的散列 api 我完美地获得了用户信息。

我用过这个方法,但没有使用 omniauth。所以我的问题是有没有办法只使用生成的 access_token 检索 omniauth 哈希(令牌由 facebook sdk 生成并将其发送到服务器)?

我只是想确保我没有用这种方法重新发明轮子。

很少 ruby 可用于通过 Facebook 进行身份验证并从中检索数据。

请参考这个 link : https://github.com/arsduo/koala , https://github.com/nov/fb_graph2

对于google使用可以参考这个link:https://github.com/zquestz/omniauth-google-oauth2