フォームから送信されたデータをGoogleドライブ(app/models/contact.rb)のアカウントのスプレッドシートに接続して保存する方法を持つ連絡先コントローラーがあります。
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
このメソッドは、次のように config/environments/development.rb に保存されている figaro で設定した環境変数を呼び出します。
GMAIL_USERNAME: tgolsby@gmail.com
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 アカウントに 2 段階認証プロセスが設定されていないことも確認しました。