我有一個聯繫人控制器,它有一個方法來連接並保存從我的帳戶在谷歌驅動器(app/models/contact.rb)從表格提交到電子表格的數據:錯誤的身份驗證錯誤Rails連接到谷歌驅動器
def update_spreadsheet
connection = GoogleDrive.login(ENV["GMAIL_USERNAME"], ENV["GMAIL_PASSWORD"])
ss = connection.spreadsheet_by_title('Learn-Rails02-Example')
if ss.nil?
ss = connection.create_spreadsheet('Learn-Rails02-Example')
end
的方法調用的環境變量我設置與保存的配置/環境/ development.rb如下費加羅:
GMAIL_USERNAME: [email protected]
GMAIL_PASSWORD: Paxxword (obviously this is a place holder for my actual password in the .yml file)
當我提交我的形式,我得到以下錯誤:
*GoogleDrive::AuthenticationError at /contacts
Authentication failed for tgolsby: Response code 403 for post https://www.google.com/accounts/ClientLogin: Error=BadAuthentication*
它指向的接觸模型下面一行:
*def update_spreadsheet*
**connection = GoogleDrive.login(ENV["GMAIL_USERNAME"], ENV["GMAIL_PASSWORD"])**
*ss = connection.spreadsheet_by_title('Learn-Rails02-Example')
if ss.nil?
ss = connection.create_spreadsheet('Learn-Rails02-Example')
end*
我已經檢查和複查我的用戶名和密碼,我相信他們是在application.yml文件正確的100%。我已經閱讀了教程並重復了所有步驟,但我無法弄清楚爲什麼應用程序無法連接到Google。我還檢查了我的Google帳戶沒有設置兩步驗證。
你是從你的本地機器上試過嗎?還是部署到Heroku?在本地,您可以硬編碼您的憑據,以確保您的問題不在於設置ENV變量。您正在使用「Learn Ruby on Rails」書中的代碼。您是否可以使用Gmail連接成功發送郵件(相同憑據)? –
謝謝你回到我身邊丹尼爾:)是的,嘗試從本地機與webrick服務器。已經使用了「Learn Ruby on Rails」中的所有代碼,唯一的區別是我已經將項目名稱替換爲「learn-rails02」,因此在每個相關的文件中我相應地調整了名稱。郵件發送(只有當我從控制器中刪除電子表格方法,所以它不會卡住)。我在browsaer中收到通知,並且日誌說它是從Gmail地址發送的,並且有正確的電子郵件地址發送到,但沒有郵件到達我的收件箱。 – user3186432
我已經重新啓動了webrick服務器,現在它似乎都能正常工作,包括郵件和電子表格。歡呼聲,Tim – user3186432