1

我的 Ruby on Rails 应用程序为每个用户的公共页面都有一个子域 URL。例如。用户名.xyz.com

我想在 Rails 的用户 Facebook 页面上发布这个 URL。

到目前为止,我已经创建了一个 Facebook 应用程序并设置了它的页面选项卡和 URL。

我正在使用 fbgraph gem 在 facebook 页面上设置这个应用程序。(此页面将由用户创建,并具有此页面的管理员访问权限。)

我使用了这段代码:

user = FbGraph::User.me("USER_TOKEN")
account = user.accounts.select {|account| account if account.name == "PageName"}.first 
page = FbGraph::Page.new(account.identifier).fetch(:access_token =>"Access_token",:fields => :access_token)
tab = page.tab!(:app_id => "APP_ID_I_CREATED")

使用此代码,每个用户的页面都指向 APP 的 Page Tab URL 中定义的 URL。

我希望每个用户的页面都指向他们自己的子域 URL(例如:user1.xyz.com)

我需要做什么才能实现这一目标?

4

2 回答 2

0

子域不由 Web 服务器处理,它由 DNS 处理。因此,首先您需要让 DNS 将 everyuser.xyz.com 路由到您的 Web 服务器所在的 IP 地址。

DNS 的工作方式,您可能必须为每个用户创建一个 DNS 条目。创建用户时,您可能能够找到用于添加 DNS 子域的 API。

不要问我如何做到这一点,因为我不知道,也没有兴趣研究它。

您还必须让 Web 应用程序接受请求,@lightyrs 对如何执行此操作有很好的描述。

于 2012-09-25T11:22:51.113 回答
0

您可以执行以下操作:

编辑:使所有这些 user.mywebsite.com 子域解析到相同的 URL。在那个网址:

  1. 创建一个包罗万象的路由,它将处理来自 的所有流量*.facebook.com
  2. 将该路由指向解码的控制器操作params[:signed_request]
  3. 解码后的签名请求将产生负责该请求的页面的 facebook id。
  4. 在您的系统中获取作为相关页面管理员的用户。
  5. 获取用户的子域。
  6. 重定向到子域。

目前,这是解决此问题的最常用方法,但是,我希望将来能看到 facebook 的解决方案,它允许我们拥有某种基于页面、用户和推荐上下文的动态标签 URL。

于 2012-10-19T13:33:50.877 回答