【发布时间】:2010-12-19 15:21:35
【问题描述】:
我正在使用 Omniauth 并强制 /auth/facebook 在弹出窗口中显示(使用 JS)。 [而不是一个新窗口 - 这对用户不太友好]
问题是:Omniauth 使用
加载 FB urldisplay=page
而不是我想要的:
display=popup
有人知道我可以如何更改 Omniauth 用于 facebook 的参数吗?
谢谢
【问题讨论】:
我正在使用 Omniauth 并强制 /auth/facebook 在弹出窗口中显示(使用 JS)。 [而不是一个新窗口 - 这对用户不太友好]
问题是:Omniauth 使用
加载 FB urldisplay=page
而不是我想要的:
display=popup
有人知道我可以如何更改 Omniauth 用于 facebook 的参数吗?
谢谢
【问题讨论】:
在您设置 Facebook ID 和密钥的地方,添加一个额外的选项:
:display => "popup"
【讨论】:
实际上,在当前版本的 omniauth-facebook 中,这对我有用:
:authorize_params => { :display => 'popup' }
【讨论】:
:authorize_params for 是无证的。我已要求重新打开它。
如果您使用的是 heroku,请使用此选项:
config.omniauth :facebook, ENV['FB_APP_ID'], ENV['FB_APP_SECRET'], {:scope => 'email, offline_access', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}, :display => 'popup' }
【讨论】:
如果您将其与 Devise 一起使用,只需将您的 development.rb(和 production.rb)编辑为以下内容;
config.omniauth :facebook, FACEBOOK_API, FACEBOOK_SECRET, :display => 'popup'
确保在编辑这些文件后重新启动 Rails 服务器。
【讨论】: