Я ищу способ создать объект Google Credentials и получить доступ к моей электронной таблице Google Sheets без необходимости ссылаться на другой файл, содержащий мои данные client_secret.json. Похоже, это должно быть довольно легко сделать, я просто хочу иметь возможность скопировать JSON в свой скрипт python и получить к нему доступ таким образом, но я не смог найти способ сделать это.
Согласно https://oauth2client.readthedocs.io/en/latest/source/oauth2client.file.html кажется, что единственный способ использовать текущий метод - это путь к файлу, но опять же, если файл буквально содержит только JSON, кажется, что должен быть способ просто поместить JSON в мой скрипт python и использовать его из там.
Ниже показано, как я в настоящее время получаю значения из моего файла json.
SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, store)
service = build('sheets', 'v4', http=creds.authorize(Http()))
SPREADSHEET_ID = ID
RANGE_NAME = sheetName + '!A2:D'
result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID,
range=RANGE_NAME).execute()
Если вы откажетесь от пакета устаревший oauth2client и перейдете к пакетам google-auth / google-auth-oauth, вы можете использовать метод Flow.from_client_config с вашим dict информации из файла client_secrets.






Изменил мой код на это:
SCOPES = 'https://www.googleapis.com/auth/spreadsheets'
store = file.Storage('credentials.json')
flow = client.OAuth2WebServerFlow(client_id='619103408544-qbpfk38g9jk4tkc5gshvds9hs8g5ur9o.apps.googleusercontent.com',
client_secret='faJQr2Wd3x25_yKYIWslxR4s',
scope=SCOPES)
creds = tools.run_flow(flow, store)
service = build('sheets', 'v4', http=creds.authorize(Http()))
При использовании другой функции для создания потока оказалось, что вам не нужно фактически использовать хранилище для создания учетных данных, поэтому я просто удалил строку store.get ().
Спасибо за совет, я обновлю свой пост определенно новым для этого сайта.
Я немного сбит с толку, но если вы хотите сохранить свои кредиты в сценарии, вы, вероятно, можете просто сделать с ними диктовку.