Я создаю приложение, которое позволяет пользователям использовать свой собственный домен. Какой метод я использую в своем приложении Rails, чтобы автоматически зарегистрировать выбранный вами домен с Heroku? Мне также нужно будет отменить регистрацию, если они изменят его.
Как добавить домены в приложение Heroku с помощью Ruby-кода?
Ответ 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.