0

运行 OSX Mavericks、ruby 2.1.1p76(2014-02-24 修订版 45161)[x86_64-darwin13.0]、rvm 1.25.23(主)和 rails-4.1.0(据称)

我正在阅读railsapps.org关于学习 rails的书,并且被困在“电子表格连接”中。我的代码与书中所述完全一致,并且我已经为 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

我的 secrets.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

4 回答 4

0

If your Gmail password contains punctuation characters such as ! and @, surround the password with single quotes before setting the Unix environment variable, like this:

export GMAIL_PASSWORD="'my@#$%&!password'"
于 2014-05-01T19:30:49.737 回答
0

在教程之后我也遇到了同样的问题。像您所做的那样对用户名和密码进行硬编码,并且可以正常工作。我通过将一堆导出文件放入我的 .bash_profile 而不是 .bashrc 来修复它。不要忘记重新启动 bash 以加载更新的环境。

于 2014-06-22T20:32:44.200 回答
0

我也遇到了同样的问题,硬编码可以工作,但 env 变量不能。我也尝试将导出放在 .bash_profile 和 .bashrc 中。

对我有用的是将导出添加到我的 .profile 中。

跑小牛10.9.4

于 2014-07-20T06:18:41.113 回答
-1

通过删除 .bashrc 文件中的一些杂散 RVM 命令,我能够解决此错误。我的 .bash_profile 文件现在完全空白,我的 .bashrc 只有 6 个导出命令。

于 2015-02-03T02:05:30.117 回答