반응형
OAuth Client ID [Python] 대신 API Key를 사용하여 Python으로 Google 시트 읽기
구글 시트를 읽고 쓰는 데 필요한 자격 증명을 생성하기 위해 OAuth Client ID를 사용하는 방법에 대한 몇 가지 유용한 기사가 있지만, 나는 그러한 맥락에서 대체 API 키(토큰)를 어떻게 사용하는지 이해할 수 없었다.
나는 맹목적으로 토큰 문자열을 에 전달하려고 시도했지만, 놀랍지 않게도 오류를 받았다:
조언을 해주셔서 미리 감사드립니다
모든 사람은 OAuth를 사용하여 인증을 받아야 합니다. 시작하려면 을 참조하십시오.
우선 구글 시트 api는 api 키를 사용할 수 있다. API 키와 OAuth 2.0의 주요 차이점은 API 키가 공개 데이터에만 액세스할 수 있다는 것입니다.
REST http 요청의 경우 쿼리 매개 변수 키=를 추가할 수 있습니다모든 요청 URL에 대한 PIKey.
python의 경우 Google-api-python-client 라이브러리의 참조를 참조하십시오. build() 함수에는 developerKey라는 매개 변수가 있습니다. 나는 공식 퀵스타트에서 수정된 간단한 예시를 작성했다.
#!/usr/bin/env python
from __future__ import print_function
import httplib2
import os
from apiclient import discovery
def main(key=None):
discoveryUrl ='https://sheets.googleapis.com/$discovery/rest?version=v4'
service = discovery.build(
'sheets',
'v4',
http=httplib2.Http(),
discoveryServiceUrl=discoveryUrl,
developerKey=key)
spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'
rangeName = 'Class Data!A2:E'
result = service.spreadsheets().values().get(
spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values', [])
if not values:
print('No data found.')
else:
print('Name, Major:')
for row in values:
# Print columns A and E, which correspond to indices 0 and 4.
print('%s, %s' % (row[0], row[4]))
if __name__ == '__main__':
from sys import argv
if len(argv) == 2:
main(key=argv[1])
else:
main()
유용한 공식 링크입니다.
그러나 공식 라이브러리에 기반한 가장 일반적인 세 번째 라이브러리는 developerKey 매개 변수를 노출하지 않습니다.
반응형
'개발하자' 카테고리의 다른 글
파이썬 주피터 노트북 SHAP force_plot, 어두운 테마에서 배경색 또는 텍스트 색을 변경하는 방법은 무엇입니까? (0) | 2023.05.26 |
---|---|
벨벳 저장소를 유지하는 방법 (0) | 2023.05.26 |
Python 3을 사용하여 Jupyter Notebook에서 상대적으로 가져온 다른 디렉터리에 있는 모듈에서 로컬 함수 가져오기 (1) | 2023.05.25 |
/.pub-cache의 플러터 종속성 업데이트 (0) | 2023.05.24 |
내 kubernetes 클러스터 IP 주소가 변경되어 kubectl이 더 이상 연결되지 않습니다 (1) | 2023.05.23 |