使用Omniauth-Facebook gem存储user_likes

时间:2012-11-25 21:27:55

标签: ruby-on-rails facebook omniauth

是否有人知道 Auth Hash 中存储了user_likes的位置?

我尝试过不同的组合:

auth.extra.raw_info.user_likes
auth.extra.raw_info.likes

我已获得许可,我只是不知道如何访问user_likes数组。

Omniauth-Facebook gem

一段时间后(编辑)

或者我可以使用HTTParty gem做这样的事情:

  url = "https://graph.facebook.com/#{auth.uid}/likes&access_token=#{auth.credentials.token}"
  @likes = HTTParty.get(url)

但我真的想知道它是否可能通过omniauth身份验证过程......

2 个答案:

答案 0 :(得分:1)

omniauth-facebook gem使用/ me调用来填充raw_info哈希。根据facebook文档http://developers.facebook.com/docs/reference/api/user/,喜欢不包含在用户对象中,但是可以通过调用https://graph.facebook.com/me/likes来访问。

答案 1 :(得分:1)

希望这个回复虽然很晚,但是帮助那些试图弄清楚auth哈希对象中不同哈希值内部的人(架构参考:https://github.com/intridea/omniauth/wiki/Auth-Hash-Schema

可以简单地将对象渲染为浏览器的yaml,而不是尝试不同的组合(如问题中所述)。现在,浏览器输出的页面源将清楚地显示auth对象的返回部分。其他选项是调试中断并检查回调控制器中的auth对象(在这种情况下,ide会非常有用)。

的routes.rb

 ...
 match '/auth/facebook/callback' => 'authentications#create'
 ...

authentications_controller.rb(或接收回叫的控制器)

class AuthenticationsController < ApplicationController
    ...


    def create
        # a simple code to understand the content of the auth object
        render :text => request.env["omniauth.auth"].to_yaml
    end
 end