Удалите файлы Google Sheet, созданные с учетной записью службы в качестве обычного пользователя. - PullRequest
1 голос
/ 16 января 2020

Я использую библиотеку gspread для подключения к API Google Sheets API v4 для создания новых Google Sheets с учетной записью службы. Я делюсь Листами с пользователем, который может читать и писать в файлы. Но пользователь не может их удалить. Я не могу передать права владельца пользователю, если я пытаюсь получить это сообщение об ошибке:

Право собственности может быть передано другому пользователю в том же домене, что и текущий владелец

Итак, теперь у меня на диске Google есть много файлов Google Sheet, которые пользователь не может удалить. Как мне это решить?

import os, gspread
from oauth2client.service_account import ServiceAccountCredentials

credsFile = self.getString('credentialsJsonFile')

credsPathAndFileName = os.path.join(GetStringValue('System.Profile'), credsFile)

SCOPES = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name(credsPathAndFileName, SCOPES)

gc = gspread.authorize(creds)
sheetName = self.getStringValue('spreadsheetFileName')
sh = gc.create(sheetName)

shareUser1 = self.getStringValue('shareWithUser1')
shareGroup1 = self.getStringValue('shareWithGroup1')
if not shareUser1 == '':
  sh.share(shareUser1, perm_type='user', role='owner')
if not shareGroup1 == '':
  sh.share(shareGroup1, perm_type='group', role='owner')

worksheet = sh.get_worksheet(0)

worksheet.update_acell('A4', 'X-Mean')
worksheet.update_acell('A5', 'X-STD')
...