如何使用Ruby代码将域添加到Heroku应用程序?

Gal*_*ing 10 dns ruby-on-rails heroku

我正在创建一个允许用户使用自己域名的应用.我在Rails应用程序中使用什么方法自动注册他们选择的域名?如果他们改变它,我还需要取消注册.

edg*_*ner 16

我已经联系了Heroku同样的事情,他们只是把我指向他们的api,然后说这样就可以了.

我担心没有.我们的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')
Run Code Online (Sandbox Code Playgroud)

请参阅api了解更多信息.

当然我建议不要在你的代码中加入明文密码.您可以做的一件好事是使用heroku环境变量从代码中获取密码.

heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASSWORD'])
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的应用程序上设置环境变量

$> heroku config:add HEROKU_USER='heroku_username'
$> heroku config:add HEROKU_PASSWORD='heroku_password'
Run Code Online (Sandbox Code Playgroud)

从命令行.


Sim*_*mmo 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
Run Code Online (Sandbox Code Playgroud)


Sim*_*tti 2

通常在 Heroku 中添加域的方式是通过以下方式使用 Heroku API:是通过Heroku gem。有一个名为heroku domains:add您可以调用的命令

$ heroku domains:add example.com
Run Code Online (Sandbox Code Playgroud)

正如我之前所说,客户端调用 Heroku API。您可以从库中提取 Heroku 域 API 信息,并创建一个自定义脚本来调用 Heroku API 以在应用程序中添加和删除域。

这是客户端源代码

笔记。因为您正在进行“逆向工程”并且 API 似乎没有记录,所以您应该请求 Heroku 许可才能这样做,只是为了确保您没有创建违反其 TOS 的内容。