我正在创建一个允许用户使用自己域名的应用。我在Rails应用程序中使用什么方法自动注册他们选择的域名?如果他们改变它,我还需要取消注册。
答案 0 :(得分:16)
我已经联系了Heroku同样的事情,他们只是指着我their api,然后说这样就可以了。
我担心没有。 Our API仅由客户代码“记录”。
您可能会发现我们的Google群组也有助于从社区成员那里获得建议:http://groups.google.com/group/heroku/
奥伦
以下是简单的操作方法:
require 'heroku'
heroku = Heroku::Client.new('heroku_username', 'heroku_password')
heroku.add_domain('heroku_app_name', 'example.com')
heroku.remove_domain('heroku_app_name','example.com')
有关详情,请参阅the api。
当然我建议不要在你的代码中加入明文密码。您可以做的一件好事是使用heroku环境变量从代码中获取密码。
heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASSWORD'])
然后您可以使用
在应用上设置环境变量$> heroku config:add HEROKU_USER='heroku_username'
$> heroku config:add HEROKU_PASSWORD='heroku_password'
从命令行。
答案 1 :(得分:7)
heroku gem现已弃用。您应该使用heroku.rb gem。命令略有改变,但基本相同。
require 'heroku-api'
heroku = Heroku::API.new(:api_key => API_KEY) # use API Key
heroku = Heroku::API.new(:username => USERNAME, :password => PASSWORD) # use username and password
heroku = Heroku::API.new(:headers => {'User-Agent' => 'custom'}) # use custom header
heroku.delete_domain('app', 'example.com') # remove the 'example.com' domain from the 'app' app
heroku.get_domains('app') # list configured domains for the 'app' app
heroku.post_domain('app', 'example.com') # add 'example.com' domain to the 'app' app
答案 2 :(得分:2)
您通常add domains in Heroku通过Heroku gem使用Heroku API的方式。
有一个名为heroku domains:add
的命令可以调用
$ heroku domains:add example.com
正如我之前所说,客户端调用Heroku API。您可以从库中提取Heroku域API信息,并创建一个调用Heroku API的自定义脚本,以便从您的应用中添加和删除域。
请注意。因为你是“逆向工程”和API似乎没有记录,你应该要求Heroku这样做,只是为了确保你没有针对他们的服务条款创建一些东西。
答案 3 :(得分:0)
宝石来自heroku,是推荐的方法。我刚刚用同样的问题联系了Heroku,这就是答案:
您需要告诉Heroku关于域以及路由的路径。 CNAME告诉DNS如何获取Heroku的请求。现在你必须告诉Heroku将它发送到哪个应用程序。您可以通过将域添加到您的应用来实现此目的。在您的情况下,您需要运行“heroku domains:add my.domain.com”到您的应用程序。您也可以通过我们的API从应用程序内部以编程方式执行此操作。有关如何连接和使用API的示例,请参阅Heroku gem(http://github.com/heroku/heroku)。