Указание идентификатора приложения facebooker по домену
У меня есть веб-сайт RoR на domain1.com, который использует приложение facebook, связанное с этим доменом.
Я хочу, чтобы domain2.com указывал на тот же сервер, что и domain1.com, поэтому domain1.com/foo
эквивалентно domain2.com/foo
,
Очевидно (я думаю) мне нужно сделать второе приложение для Facebook, потому что приложение, связанное с domain1.com, не будет работать, если они зайдут на сайт под domain2.com.
Тем не менее, я не знаю, как сказать facebooker2, в его facebooker.yml, использовать одно приложение, если запрос приходит с одного хоста или другого приложения, если оно приходит от другого.
Есть ли способ сделать это, или сделать что-то, что достигает того же результата?
1 ответ
Facebooker2 не имеет встроенной поддержки для этого, но вы можете сделать так, чтобы он поддерживал это!
Вам нужно переопределить некоторые функции в этом файле:
facebooker2 / Библиотека /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: #####
Дайте мне знать, как это происходит.