按域指定 facebooker 应用程序 ID

发布于 2024-10-12 18:38:52 字数 391 浏览 4 评论 0原文

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

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

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

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

有什么方法可以做到这一点,或者做一些可以达到相同结果的事情吗?

I have a RoR website at domain1.com that uses a facebook application linked to that domain.

I want to make domain2.com to point to the same server as domain1.com, so domain1.com/foo is equivalent to domain2.com/foo.

Obviously (I think) I need to make a second facebook application, because the one linked to domain1.com won't work if they visit the site under domain2.com.

However, I don't know how to tell facebooker2, in its facebooker.yml, to use one application if the request comes from one host or a different app if it comes from the other.

Is there any way to do this, or do something that achieves the same result?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雅心素梦 2024-10-19 18:38:52

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

让我知道那是怎么回事。

Facebooker2 doesn't have built-in support for this, but you can make it support it!

You'll need to override some of the functionality in this file:

facebooker2/lib/facebooker2.rb

Specifically this method:

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

Change the first line to say:

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

Then add a new level to your facebooker.yml file, something like this:

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

Let me know how that goes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文