Как добавить домены в приложение Heroku, используя код Ruby? - PullRequest
10 голосов
/ 19 октября 2010

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

Ответы [ 4 ]

16 голосов
/ 28 октября 2010

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

Ябоюсь, что нет. Наш API «документируется» только кодом клиента.

Вы также можете найти нашу группу Google полезной для получения рекомендаций от участников сообщества: http://groups.google.com/group/heroku/

Oren

Вот простые инструкции:

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'

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

7 голосов
/ 15 декабря 2012

Драгоценный камень герою теперь устарел.Вместо этого вы должны использовать камень 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
2 голосов
/ 19 октября 2010

Как вы обычно добавляете домены в Heroku , вы используете API Heroku через Heroku gem .Есть команда под названием heroku domains:add, которую вы можете вызвать

$ heroku domains:add example.com

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

Вот исходный код клиента .

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

0 голосов
/ 28 октября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...