Google 드라이브 (app/models/contact.rb)의 내 계정에있는 스프레드 시트에 양식에서 제출 된 데이터를 연결하고 저장하는 방법이있는 연락처 컨트롤러가 있습니다 :잘못된 인증 오류 Google 드라이브에 연결하는 레일
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 계정에 2 단계 인증을 설정하지 않았는지 확인했습니다.
로컬 컴퓨터에서이 작업을 시도하고 있습니까? 또는 Heroku에 배치 되었습니까? 지역적으로 자격 증명을 하드 코드하여 ENV 변수를 설정하지 않아도 문제가 없는지 확인할 수 있습니다. 내 "Learn Ruby on Rails"책의 코드를 사용하고 있습니다. Gmail 연결 (동일한 자격 증명)을 사용하여 메일을 성공적으로 보낼 수 있었습니까? –
Daniel에게 돌아가 줘서 고마워. :) 예. webrick 서버로 로컬 컴퓨터에서 이걸 시도해보십시오. "Learn Ruby on Rails"의 모든 코드를 사용했다면 프로젝트의 이름을 'learn-rails02'로 바꿨다. 그래서 각 파일에서 적절하게 이름을 조정했다. 메일이 전송됩니다 (컨트롤러에서 스프레드 시트 메소드를 제거한 경우에만 멈추지 않습니다). 나는 browsaer에서 알림을받습니다. 로그에 Gmail 주소에서 보낸 메일과 정확한 이메일 주소가 들어 있지만받은 편지함에는 메일이 도착하지 않는다고합니다. – user3186432
webrick 서버를 다시 시작했습니다. 이제는 메일과 스프레드 시트 모두 제대로 작동하는 것 같습니다. 건배, 팀 – user3186432