Facebook oauth对话框返回uri的POST方法

时间:2013-06-04 18:28:13

标签: ruby-on-rails facebook facebook-graph-api

短版

登录后有没有办法让facebook POST从他们的oauth对话框回到你的回复网址?

有背景故事

我正在开发一个Rails应用程序,用户可以在其中购买产品。为了购买产品,他必须通过创建请求来请求。该请求存储产品的ID,产品所有者的ID以及请求者的ID,只是为了将这三者相互关联。

所有这一切都通过一个表格发生,当然,这是通过邮寄请求发送的。

这是棘手的部分:用户必须登录才能发出请求。他们可以通过Facebook登录。在我的应用程序控制器中,我目前有以下方法来检查用户是否已登录:

def user_signed_in?
  unless current_user # from other method
    flash[:error] = "Please log in first."
    redirect_to root_path and return false
  end

  true
end
helper_method :user_signed_in?

我想将root_path更改为facebook auth对话框网址。目前,我有以下内容:

def user_signed_in?
  unless current_user
    raise "https://www.facebook.com/dialog/oauth/?client_id=#{ENV['FACEBOOK_APP_ID']}&redirect_uri=#{request.url}&scope=#{User::BASIC_PERMISSIONS}"
    redirect_to "https://www.facebook.com/dialog/oauth/?client_id=#{ENV['FACEBOOK_APP_ID']}&redirect_uri=#{request.url}&scope=#{User::BASIC_PERMISSIONS}" and return false
  end

  true
end

到目前为止,一切正常 - 登录后,facebook会将我重定向到正确的网址。但是,重定向必须通过post请求发生,否则将不会创建Request记录。 facebook支持吗?理想情况下,我的帖子参数不会在途中丢失吗?我已就此事检查了facebook's documentation并搜索了网络,但找不到任何内容。

0 个答案:

没有答案