- Я еще включил «API Google Диска» в проекте GCP.
- Я еще создал «служебный аккаунт» и в «API/Сведения о сервисе» (https ://console.cloud.google.com/apis/api/drive.googleapis.com), я могу его увидеть.
- Я еще не создал файл JSON с помощью учетные данные «служебной учетной записи».
В чем моя вина?
from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
service_account_json_key = '****sa-key-jsonfile****.json'
SCOPES = ['https://www.googleapis.com/auth/drive']
creds = service_account.Credentials.from_service_account_file(
filename=service_account_json_key, scopes=SCOPES)
def search_file():
"""Search file in drive location"""
try:
# create drive api client
service = build("drive", "v3", credentials=creds)
files = []
page_token = None
while True:
# pylint: disable=maybe-no-member
response = (
service.files()
.list(
# q="mimeType='image/jpeg'",
spaces="drive",
fields="nextPageToken, files(id, name)",
pageToken=page_token,
)
.execute()
)
for file in response.get("files", []):
# Process change
print(f'Found file: {file.get("name")}, {file.get("id")}')
files.extend(response.get("files", []))
page_token = response.get("nextPageToken", None)
if page_token is None:
break
except HttpError as error:
print(f"An error occurred: {error}")
files = None
return files
if __name__ == "__main__":
ret = search_file()
print(ret)
Подробнее здесь: https://stackoverflow.com/questions/791 ... ce-account