개발하자
OAuth Client ID [Python] 대신 API Key를 사용하여 Python으로 Google 시트 읽기
Cuire
2023. 5. 25. 15:22
반응형
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 매개 변수를 노출하지 않습니다.
반응형