WedX - журнал о программировании и компьютерных науках

Таблицы, созданные с помощью gspread, доступны всем пользователям в моей организации

У меня есть сценарий 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]). Любые предложения приветствуются!


  • Еще более странно - я попытался удалить share (), и теперь мне не предоставлен доступ к файлу, но он доступен всем остальным в моем домене. Это заставляет меня думать, что это как-то связано с учетными данными учетной записи службы, которые я использую, или некоторыми настройками в консоли Google API, но я не могу понять, что именно. 27.08.2019

Ответы:


1

Я понял это и чувствую себя довольно глупо ...

Я копировал шаблон и устанавливал copy_permissions=True. Фактически, шаблон не был предоставлен всей моей организации, но он был предоставлен двум людям, с которыми мне довелось проверить, и в результате каждая его копия по умолчанию была предоставлена ​​одним и тем же двум людям. . Изменение на copy_permissions=False устранило проблему.

27.08.2019
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]