按域指定facebooker app id

时间:2011-01-15 18:36:49

标签: ruby-on-rails facebook facebooker facebooker2

我在domain1.com上有一个使用链接到该域名的Facebook应用程序的RoR网站。

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

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

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

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

1 个答案:

答案 0 :(得分: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: #####

让我知道这是怎么回事。