1

我在 domain1.com 有一个 RoR 网站,它使用链接到该域的 facebook 应用程序。

我想让 domain2.com 指向与 domain1.com 相同的服务器,所以domain1.com/foo相当于domain2.com/foo.

显然(我认为)我需要制作第二个 facebook 应用程序,因为如果他们访问 domain2.com 下的站点,链接到 domain1.com 的应用程序将无法工作。

但是,我不知道如何在其 facebooker.yml 中告诉 facebooker2,如果请求来自一个主机,则使用一个应用程序,或者如果它来自另一个主机,则使用不同的应用程序。

有没有办法做到这一点,或者做一些能达到同样结果的事情?

4

1 回答 1

1

Facebooker2 没有对此的内置支持,但您可以让它支持它!

您需要覆盖此文件中的一些功能:

facebooker2/lib/facebooker2.rb

具体这种方法:

def self.load_facebooker_yaml
  config = YAML.load(ERB.new(File.read(File.join(::Rails.root,"config","facebooker.yml"))).result)[::Rails.env]
  raise NotConfigured.new("Unable to load configuration for #{::Rails.env} from facebooker.yml. Is it set up?") if config.nil?
  self.configuration = config.with_indifferent_access
end

将第一行更改为:

config = YAML.load(ERB.new(File.read(File.join(::Rails.root,"config","facebooker.yml"))).result)[::Rails.env][::request.domain]

然后在您的 facebooker.yml 文件中添加一个新级别,如下所示:

production:
  domain1.com:
    app_id: ####
    secret: #####
    aki_key: #####
  domain2.com
    app_id: ####
    secret: #####
    aki_key: #####
development:
  localhost:
    app_id: ####
    secret: #####
    aki_key: #####

让我知道情况如何。

于 2011-01-16T22:53:45.360 回答