Exemplo de conta de serviço Python da API do Google Drive

Oct 28 2020

É possível autenticar na API do Google Drive usando uma conta de serviço do Google, em vez de um fluxo OAuth?

Os exemplos de Python para Google Drive usam OAuth - Início rápido de Python do Google drive

No entanto, não consigo encontrar nenhum exemplo de conta de serviço.

A maioria das outras APIs do Google I uso (Traduzir, Nuvem Vision) fazer uso de conta de serviço no entanto, assim que eu gostaria de depreciar o meu código do Google Drive OAuth para a consistência.

Respostas

2 DaImTo Oct 28 2020 at 17:19

O melhor exemplo de conta de serviço python que conheço é o do Google Analytics

Deve ser algo assim.

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

Assim que tiver o serviço de unidade, você poderá usar o restante do código do outro tutorial. É apenas o método de autenticação que é diferente.

Lembre-se de criar credenciais de conta de serviço e não credenciais Oauth.