Как добавить домены в приложение Heroku с помощью Ruby-кода?

Я создаю приложение, которое позволяет пользователям использовать свой собственный домен. Какой метод я использую в своем приложении Rails, чтобы автоматически зарегистрировать выбранный вами домен с Heroku? Мне также нужно будет отменить регистрацию, если они изменят его.

Ответ 1

Я связался с 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')

Подробнее см. 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'

из командной строки.

Ответ 2

Герой герою теперь устарел. Вместо этого вы должны использовать heroku.rb. Команды немного изменились, но по сути это одно и то же.

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

Ответ 3

Как обычно добавлять домены в Heroku использует API Heroku через Драгоценный камень Героку. Там команда под названием heroku domains:add вы можете вызвать

$ heroku domains:add example.com

Как я уже говорил, клиент вызывает API Heroku. Вы можете извлечь информацию API домена Heroku из библиотеки и создать пользовательский script, который вызывает API Heroku для добавления и удаления домена из вашего приложения.

Здесь клиентский исходный код.

Примечание. Поскольку вы являетесь "обратным проектированием" и API, который, как представляется, не документирован, вы должны попросить разрешение Heroku сделать это, просто чтобы убедиться, что вы не создаете что-то против своих TOS.

Ответ 4

Жемчужина от героку и является рекомендуемым подходом. Я только что связался с Heroku с тем же вопросом, и это был ответ:

Вы должны сообщить Heroku о домене и куда его маршрутизировать. CNAME сообщает DNS, как получить запрос в Heroku. Теперь вы должны сказать Heroku, какое приложение отправить. Вы делаете это, добавляя домен в свое приложение. В вашем случае вам нужно будет запустить "домены heroku: добавить my.domain.com" в ваше приложение. Вы также можете сделать это программно из своего приложения через наш API. См. Жемчуг Heroku (http://github.com/heroku/heroku) для примера того, как подключиться и использовать API.