Пример учетной записи службы Python Google Drive API

Oct 28 2020

Можно ли аутентифицироваться с помощью API Диска Google, используя учетную запись службы Google, а не поток OAuth?

Примеры Python для Google Drive используют OAuth - Google Drive Python Quick start

Однако я не могу найти примеры учетных записей служб.

Однако большинство других API Google, которые я использую (Translate, Cloud Vision), действительно используют учетную запись службы, поэтому я хотел бы отказаться от кода OAuth для Google Диска для согласованности.

Ответы

2 DaImTo Oct 28 2020 at 17:19

Лучший пример сервисного аккаунта на Python, о котором я знаю, - это пример Google Analytics.

Должно получиться примерно так.

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials


SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
KEY_FILE_LOCATION = '<REPLACE_WITH_JSON_FILE>'
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'


def initialize_drive():
  """Initializes an service object.

  Returns:
    An authorized service object.
  """
  creds = ServiceAccountCredentials.from_json_keyfile_name(
      KEY_FILE_LOCATION, SCOPES)

  # Build the service object.
  service = build('drive', 'v3', credentials=creds)

  return service

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

Просто не забудьте создать учетные данные для учетной записи службы, а не учетные данные Oauth.