Я работаю над проектом, в котором в соответствии с https://12factor.net/config мы не такие вещи, как учетные данные в нашем коде, а скорее в переменных среды.
Я изучаю использование API Google Sheets для сопоставления некоторых данных из нашей базы данных и помещения их в лист Google. Вот частичный пример скрипта с сайта https://developers.google.com/sheets/api/quickstart/python:
from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file as oauth_file, client, tools
# Setup the Sheets API
SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly'
store = oauth_file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
creds = tools.run_flow(flow, store)
service = build('sheets', 'v4', http=creds.authorize(Http()))
Во-первых, из документации мне непонятно, какие 'token.json'
и 'credentials.json'
должны быть в этом примере. Из консоли API на вкладке «Учетные данные» я загрузил client_secret_<long suffix>.json
, который выглядит так:
{"installed":{"client_id":"[our_client_id]","project_id":"nps-survey-1532981793379","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"[our_client_secret]","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}
Должен ли этот файл JSON быть 'token.json'
в этом примере или 'credentials.json'
? Кроме того, есть ли способ создать действительный экземпляр creds
, указав секрет клиента и идентификатор клиента напрямую, а не используя этот файл JSON?
Credentials
напрямую с соответствующими значениями. Обратите внимание, что рольtoken.json
заключается в поддержании токена доступа и соответствующей информации между выполнениями скрипта. Это не требуется. - person tehhowch   schedule 31.07.2018