Подключение к gsheets: обычным способом было бы запустить gc = pygsheets.authorize()
с файлом creds.json
в той же корневой папке, что и скрипт gsheets.py
(структура папки ниже)
├── creds.json
├── gsheets.py
Хотелось быиспользовать service_account_env_var
вместо использования файла json
Файл creds.json выглядит примерно так:
{
"token": null,
"refresh_token": "token",
"id_token": null,
"token_uri": "token_uri",
"client_id": "client_id.apps.googleusercontent.com",
"client_secret": "secret"
}
Как создать файл .env с учетными данными в jsonфайл ?
Согласно документации Pygsheets: pygsheets - Переменные среды
Предполагается, что вы установили ключ переменной среды GDRIVE_API_CREDENTIALS, установленный со значением учетной записи службы. Файл json, описанный в приведенном выше разделе «Учетная запись службы».
К сожалению, не было указаний относительно того, как можно установить переменную среды. Я думал о том, чтобы:
Создать файл .env (я действительно не уверен, как выразить json в формате файла env, поэтому оборачиваем отдельные пары ключ: значение в {} ...):
# .env
GDRIVE_API_CREDENTIALS = {
token = null
refresh_token = token
id_token = null
token_uri = token_uri
client_id = client_id.apps.googleusercontent.com
client_secret = secret }
Создание settings.py:
# settings.py
from dotenv import load_dotenv
load_dotenv()
import os
creds = os.getenv('GDRIVE_API_CREDENTIALS')
pygsheets.authorize(service_account_env_var = creds)
Конечным результатом будет успешное соединение, когда кредиты будут предоставлены в виде аргумента service_account_env_var