Przykład konta usługi Google Drive API Python

Oct 28 2020

Czy można uwierzytelnić się w interfejsie API Dysku Google przy użyciu konta usługi Google zamiast przepływu OAuth?

Przykłady Pythona dla Dysku Google używają OAuth - Dysk Google Python Szybki start

Nie mogę jednak znaleźć żadnych przykładów kont usługi.

Jednak większość innych interfejsów API Google, których używam (Tłumacz, Cloud Vision) , korzysta z konta usługi, dlatego chciałbym zrezygnować z mojego kodu OAuth Dysku Google, aby zachować spójność.

Odpowiedzi

2 DaImTo Oct 28 2020 at 17:19

Najlepszym przykładem konta usługi w Pythonie, jaki znam, jest ten dotyczący Google Analytics

Powinno być coś takiego.

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

Po uzyskaniu usługi dysku powinieneś być w stanie użyć pozostałej części kodu z innego samouczka. To tylko metoda uwierzytelniania, która jest inna.

Pamiętaj tylko, aby utworzyć poświadczenia konta usługi, a nie poświadczenia Oauth.