Указание идентификатора приложения facebooker по домену - PullRequest
1 голос
/ 15 января 2011

У меня есть веб-сайт RoR по адресу domain1.com, в котором используется приложение facebook, связанное с этим доменом.

Я хочу, чтобы domain2.com указывал на тот же сервер, что и domain1.com, поэтому domain1.com/fooэквивалентно domain2.com/foo.

Очевидно (я думаю) мне нужно сделать второе приложение для Facebook, потому что приложение, связанное с domain1.com, не будет работать, если они зайдут на сайт под domain2.com.

Однако я не знаю, как сказать facebooker2 в его facebooker.yml, использовать одно приложение, если запрос приходит с одного хоста, или другое приложение, если оно приходит от другого.

Есть ли способ сделать это, или сделать что-то, что достигает того же результата?

1 Ответ

1 голос
/ 17 января 2011

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: #####

Дайте мне знать, как это происходит.

...