구글의 개발자콘솔 UI은 수시로 변경되고,
파이선의 라이브러리 버전도 수시로 변경되면서 언제나 적용가능한 방법의 '스냅샷'은 변경되고 있습니다.
이에, 이 방법도 언제 수정이 필요할지 모르겠네요. 혹, 그새 변경이 되었다거나 한다면 댓글등으로 피드백 부탁드립니다^^
1. 가장 먼저 구글 개발자 콘솔에 접속하고 로그인 하세요. 구글개발자 콘솔 가기 >
2. 좌측의 API 관리자 메뉴에서 "사용자 인증 정보" 클릭
3. 사용자 인증정보 만들기 > 서비스 계정 키 > App Engine Default Service account 를 선택합니다.
4. 키 유형을 JSON으로 선택합니다.
5. 생성 클릭!
6. 생성된 JSON 파일을 다운로드 받습니다.
7. 다운로드 받은 JSON 파일을 에디터에서 엽니다.
8. "client_email"에 해당하는 계정을 복사합니다.
9. 구글 스프레드시트 서비스에 진입합니다.
10. 사용코자 하는 스프레드시트 하나를 생성한 후 우측상단의 '공유'버튼을 클릭합니다.
11. 공유 대상자에 방금 복사한 계정을 붙여넣어 공유를 시작합니다.
12. JSON 파일의 이름을 다루기 쉽도록 'mykey.json"등으로 변경합니다.
13. 아래에 나열된 패키지들을 설치합니다. 즉, 아래에 나열된 순서로 입력해주세요.
pip install gspread pip install oauth2client==1.5.2 pip install PyOpenSSL
* 위의 두번째 명령이 중요합니다.
1.5.2 버전이 아닌 그 상위버전이나 최신버전을 설치하시면 인증과정중에 오류가 발생합니다.
아래와 같은 내용의 오류입니다.
from oauth2client.client import SignedJwtAssertionCredentials ImportError: cannot import name 'SignedJwtAssertionCredentials'
이유를 파악하느라 가장 개고생했던 부분이네요.
13. 아래와 같이 테스트 코드를 작성합니다.
import json import gspread from oauth2client.client import SignedJwtAssertionCredentials SPREAD_SHEET_NAME = "GUNMAN" #잠시전 생성한후 공유했던 스프레드시트의 이름입니다 json_key = json.load(open('mykey.json')) scope = ['https://spreadsheets.google.com/feeds'] credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'].encode(), scope) gc = gspread.authorize(credentials) wks = gc.open(SPREAD_SHEET_NAME).sheet1 wks.update_acell('A1', "Hello, gunman !")
이상입니다. 행운을 빕니다!^^
댓글 5
-
도시게
2016.05.15 22:42
-
도시게
2016.05.15 22:54
아닙니다. 해결 했습니다.
프롬프트로 가서 pip를 설치하는 거였군요 ㅇㅅㅇ
-
아, 성공하셨다니... 축하드립니다^^
-
도미노
2016.07.05 14:23
도움 많이 받았습니다. 다만 oauth2client 패키지 최신 버전으로 설치해도 문제없으나 위에 제시된 테스트 코드를 약간 수정해야 합니다.
아래 주소로 접속하셔서 6번 항목 보시면 oauth2client 패키지 최신 버전사용시 작성하는 코드가 나와 있습니다.
http://gspread.readthedocs.io/en/latest/oauth2.html
-
와우, 좋은 정보 감사합니다~!^^
무슨 프로그램 사용하셨나요.
우분투 터미널,
아나콘다 주피터 QT콘솔,
IDLE
다 써 봤는데 ㅠㅜ
pip 부터 막히네요