У меня есть сценарий Python, который анализирует файл HTML и помещает из него нужную информацию в документ Google Sheets, который создается учетной записью службы и передается мне. Все работает нормально, ЗА ИСКЛЮЧЕНИЕМ того, что полученная электронная таблица, принадлежащая служебному аккаунту, доступна не только мне, но и всем в моей организации G Suite. Ничего особенного, поскольку моя организация очень мала, но я уверен, что мои коллеги не хотят, чтобы эти файлы загромождали их папку «Доступные мне».
Я чертовски искал это в Интернете и внимательно изучал Stack Overflow, но не придумал никаких идей по поводу изменений в моем коде, которые можно было бы попробовать. Я также задавался вопросом, может ли это быть параметр, который мне нужно изменить в консоли Google API, но там тоже ничего не нашел.
Вот соответствующий код:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
def loadTemplate(template_name, output_name):
# use creds to create a client to interact with the Google Drive API
print("Connecting to Google API...")
scope = ['https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
client = gspread.authorize(creds)
# Make a copy of the template and name it something that uniquely identifies this report
print("Copying template...")
open_spreadsheet = client.open(template_name)
copy_spreadsheet = client.copy(open_spreadsheet.id,title=output_name, copy_permissions=True)
copy_spreadsheet.share('[email protected]', perm_type='user', role='writer', notify=False)
return copy_spreadsheet
template_spreadsheet = loadTemplate(template_name, output_name)
Опять же, все работает, как ожидалось, за исключением того, что результат предоставляется всем пользователям в моей организации G Suite, а не только мне ([email protected]). Любые предложения приветствуются!