Ошибка аутентификации диска 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 команд экспорта.

Другие вопросы по тегам