2015-07-21 92 views
2

我在Rails的api应用程序中工作,并从客户端接收访问令牌,并且必须使用该令牌发出请求才能检索电子邮件,first_name和last_name。在控制器:如何使用fb_graph2从facebook中检索用户的电子邮件,名字和姓氏?

def create 
    begin 
     fb_response = FbGraph2::User.me(params[:access_token]).fetch 
     user = User.find_by(email: fb_response.email) 
     if user.nil? 
     user = User.create(email: fb_response.email, first_name: fb_response.first_name, 
          last_name: fb_response.last_name, password: Devise.friendly_token[0,20]) 
     status = :created 
     else 
     status = :ok 
     end 
     render json: { token: user.authentication_token }, status: status 
    rescue FbGraph2::Exception => e 
     raise_api_error(ApiError.new(ApiError::INVALID_OAUTH_TOKEN)) 
    end 
    end 

fb_response只配备了idname。 (令牌有权访问电子邮件)。

+0

你需要询问你想要的字段。阅读API v2.4的更新日志 – WizKid

+0

您能否举例说明如何使用fb_graph2询问我想要的字段? – Madalina

+0

我对FBGraph2一无所知 – WizKid

回答

2

转换我的评论回答:

你需要插入在获取方法字段如下:

user = FbGraph2::User.me(params[:access_token]).fetch(fields: [:name,:email, :first_name, :last_name]) 

你会得到你的领域阵给了场。

相关问题