Ошибка аутентификации диска Google в Rails
Под управлением OSX Mavericks, ruby 2.1.1p76 (редакция 2014-02-24 45161) [x86_64-darwin13.0], rvm 1.25.23 (мастер) и rails-4.1.0 (предположительно)
Я работаю над книгой railsapps.org по обучению рельсам и застрял в "Соединении с электронной таблицей ". У меня есть код в точности, как написано в книге, и я установил пароль приложения для Google Drive и проверил его. Мой код выглядит следующим образом:
def update_spreadsheet
connection = GoogleDrive.login(Rails.application.secrets.email_provider_username, Rails.application.secrets.email_provider_password)
ss = connection.spreadsheet_by_title('Learn-Rails-Example')
if ss.nil?
ss = connection.create_spreadsheet('Learn-Rails-Example')
end
Мой файл secretts.yml содержит следующее:
development:
email_provider_username: <%= ENV["GMAIL_USERNAME"] %>
email_provider_password: <%= ENV["GMAIL_PASSWORD"] %>
mailchimp_api_key: <%= ENV["MAILCHIMP_API_KEY"] %>
mailchimp_list_id: <%= ENV["MAILCHIMP_LIST_ID"] %>
и у меня есть.bashrc файл настроен правильно в соответствии с учебником.
Когда я вхожу в контактную форму и нажимаю "отправить", я получаю следующую ошибку:
GoogleDrive::AuthenticationError at /contacts
Authentication failed for : Response code 403 for post https://www.google.com/accounts/ClientLogin: Error=BadAuthentication
Если я подойду и введу жесткий код, введите логин и пароль для конкретного приложения вместо Rails.application.secrets.email_provider_username
а также Rails.application.secrets.email_provider_password
это работает просто отлично. Как новичок, я не могу следовать коду, чтобы понять, где и как Rails.application.secrets.email_provider_username
получает указание на мои настройки.bashrc.
Любая помощь с благодарностью.
С уважением, Джефф
4 ответа
Я также столкнулся с той же проблемой, когда жесткое кодирование работает, а переменные env - нет. Я попытался поместить экспорт в.bash_profile и.bashrc тоже.
Для меня было полезно добавить экспорт в мой.profile.
Бегущий Маверикс 10.9.4
Если ваш пароль Gmail содержит знаки препинания, такие как! и @, заключите пароль в одинарные кавычки перед установкой переменной среды Unix, например так:
export GMAIL_PASSWORD="'my@#$%&!password'"
У меня была такая же проблема и после урока. Жестко закодировали имя пользователя и pw, как вы сделали, и это сработало. Я исправил это, поместив кучу экспортов в мой.bash_profile вместо.bashrc. Не забудьте перезапустить ваш bash, чтобы загрузить обновленную среду.
Мне удалось обойти эту ошибку, удалив некоторые случайные команды RVM в файле.bashrc. Мой файл.bash_profile теперь полностью пуст, а мой.bashrc только 6 команд экспорта.