Есть ли способ массового редактирования разрешений пользователей / взаимодействия с сотнями листов Google с помощью Python?

#python #pandas #google-sheets #google-sheets-api

Вопрос:

У меня есть около 600 листов Google, которые все очень похожи, где мне нужно получить значения из одного конкретного столбца. Я аутентифицировал приложение в консоли разработчика Google, поэтому у меня есть доступ к одному листу. Однако для этого мне пришлось предоставить доступ к учетной записи Службы изнутри самого листа. Эта учетная запись службы не имеет доступа к другим 599 листам, и я бы предпочел не просматривать и вручную предоставлять ей доступ к каждому листу.

У кого-нибудь есть идея о лучшем способе сделать это, либо аутентифицируя учетную запись службы для всех листов, либо используя лучший способ доступа к сотням листов Google с помощью python, который не будет означать, что мне нужно разрешить учетную запись? Моя учетная запись Google имеет доступ ко всем листам, если это поможет.

У меня был google, но я не могу понять, как это сделать! Любая помощь будет признательна.

Ответ №1:

Вы можете использовать разрешения: создать в API диска, чтобы создать новое разрешение для определенного файла на основе вашей предпочтительной роли.

Образец запроса через обозреватель API:

Идентификатор файла: Идентификатор файла листа, в который вы хотите добавить новое разрешение

 {
  "role": "writer",
  "type": "user",
  "emailAddress": "serviceaccount@email.com"
}
 

Пожалуйста, обратитесь сюда за более подробным объяснением относительно используемых ролей.

Поскольку ваша учетная запись Google имеет доступ ко всем листам, вам просто нужно получить список идентификаторов всех файлов ваших листов и ввести каждый идентификатор, чтобы создать новое разрешение для вашей учетной записи службы с помощью учетной записи Google.


Дополнительная ссылка:

Быстрый запуск API привода Python