Указание идентификатора приложения 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: #####

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

Другие вопросы по тегам