Просмотр идентификатора электронной таблицы Google без предоставления его на электронный адрес - PullRequest
4 голосов
/ 21 февраля 2020

Я запутался в использовании API электронных таблиц Google. и вот в чем дело: веб-сайт, создающий электронную таблицу на моем Google Диске каждый день. Поэтому я хочу, чтобы эта созданная электронная таблица была получена автоматически. И чтобы добиться этого, я выполнил следующие действия:

в Консоль Google:

  • включил накопитель
  • создал учетные данные.

затем написал следующий код ниже.

def auth(self):
    scopes = ['https://www.googleapis.com/auth/spreadsheets.readonly', 'https://www.googleapis.com/auth/drive']
    secretKey = "client_secrets.json"

    credentials = service_account.Credentials.from_service_account_file(secretKey, scopes=scopes)
    service = discovery.build("sheets", "v4", credentials=credentials)

    client_address = 'mycredentialEmail@here.com'
    drive = discovery.build('drive', 'v3', credentials=credentials)

    services = {
        "sheet_service": service,
        "drive_service": drive
    }

    return services

def sheetId(self):
    services = self.auth()

    # get the spreadsheets folder 
    folder_id = ".......1rn00ox"
    fileList = services["drive_service"].files().list(fields="files(id, createdTime)").execute()
    print(fileList)

    today = datetime.date.today()
    spreadsheetId = [e['id'] for e in fileList.get('files', []) if dateutil.parser.parse(e.get('createdTime')).date() == today]

    return spreadsheetId[0]

Хорошо, это работает, но здесь есть одна проблема . Я не вижу идентификатор электронной таблицы, если я share не указал его адрес электронной почты для своих учетных данных ... Поэтому каждый день мне нужно go вводить новую электронную таблицу и отправлять ей credentials электронное письмо, но оно не очень автоматическое c? Есть ли лучший способ? Например, как я могу поделиться client_adress в коде, а не на веб-сайте вручную, и посмотреть электронную таблицу?

спасибо.

...