首页 > 解决方案 > 查看 Google 电子表格 ID 而不将其共享到邮件地址

问题描述

我对使用 Google 电子表格 API 感到困惑。事情是这样的:一个网站每天在我的 Google Drive 中创建一个电子表格。所以我想自动获取创建的电子表格。为了实现这一点,我遵循了以下步骤:

谷歌控制台中:

然后在下面编写了以下代码。

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]

好的,它正在工作,但这里有一个问题。除非我使用我的凭据电子邮件地址,否则我看不到电子表格 ID share...所以每天我都需要进入新创建的电子表格并分享我的credentials电子邮件,但这不是很自动?有没有更好的办法?例如,如何在代码中共享client_adress,而不是在网站上手动共享,并查看电子表格?

谢谢你。

标签: pythongoogle-sheetsgoogle-drive-api

解决方案


推荐阅读