메뉴 건너뛰기

프로그래밍


구글의 개발자콘솔 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 !")


이상입니다. 행운을 빕니다!^^





번호 제목 글쓴이 날짜 조회 수
공지 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [14] 파이팅건맨 2016.02.20 42411
공지 [TIP] JQuery와 PHP로 이미지 파일을 업로드 하는 간단한 소스 (How to upload image file on PHP server by using JQuery) 파이팅건맨 2015.04.03 7252
공지 [TIP] php로 기상청에서 제공하는 기상정보 API 호출하기 파이팅건맨 2017.01.17 4262
143 [TIP] php로 기상청에서 제공하는 기상정보 API 호출하기 파이팅건맨 2017.01.17 4262
142 [TIP] node 에서 Basic authentication 인증과 함께 http, https 요청하기 파이팅건맨 2016.09.01 624
141 [TIP] node의 lambda-local 테스트 팁 파이팅건맨 2016.08.19 518
140 [TIP] 데이터를 Node에서 암호화하고 PHP에서 복호화 하기 파이팅건맨 2016.08.19 545
139 [TIP] Docker상의 Syntaxnet 결과 포맷을 수정하기 파이팅건맨 2016.08.07 1528
138 [TIP] SyntaxNet을 Windows에서 실행하기 [1] 파이팅건맨 2016.05.25 644
137 [TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) [3] 파이팅건맨 2016.04.16 3721
136 [TIP] 파이선으로 TED에서 가장많이 사용된 단어들 줄세우기 파이팅건맨 2016.04.03 1144
» [TIP] 파이선에서 구글 스프레드시트 사용하기 [5] 파이팅건맨 2016.03.27 3781
134 [TIP] 파이선에서 리스트를 사용하는 재미있는 예제 파이팅건맨 2016.03.15 569
133 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [14] 파이팅건맨 2016.02.20 42411
132 [TIP] 퍼포먼스를 높여주는 몇가지 코딩 예 파이팅건맨 2016.01.22 458
131 [TIP] JQuery와 PHP로 이미지 파일을 업로드 하는 간단한 소스 (How to upload image file on PHP server by using JQuery) 파이팅건맨 2015.04.03 7252
130 [TIP] 자작 커널을 위한 인터럽트 벡터 수정 (EZ-2410보드 대상) 파이팅건맨 2013.05.04 598
129 위치추적 [1] 우람사랑 2013.04.06 433
128 [TIP] MySQL - NaviCat 사용시 에러 확인방법 파이팅건맨 2010.02.23 932
127 [TIP] 설치된 코덱 리스트 얻어오기 파이팅건맨 2010.02.18 818
126 [TIP] VFW 에서 영상 압축을 위한 코덱을 코드상에서 선택하여 실시간 저장하는 방법입니다. 파이팅건맨 2010.02.04 1030
125 [TIP] Visual Studio App Wizard 만들기 관련 파이팅건맨 2009.12.17 918
124 [TIP] C# 에서 Win32 DLL 을 사용하기 위한 방법 파이팅건맨 2009.07.16 1053
위로