comandante_ss
@comandante_ss

Как использовать Google api python на сервере?

В проекте использую гугл драйв апи, и для авторизации он запускает локальный сервер, как сделать что бы он создавал не локальный?

def Create_Service(client_secret_file, api_name, api_version, *scopes):
    print(client_secret_file, api_name, api_version, scopes, sep='-')
    CLIENT_SECRET_FILE = client_secret_file
    API_SERVICE_NAME = api_name
    API_VERSION = api_version
    SCOPES = [scope for scope in scopes[0]]
    print(SCOPES)

    cred = None

    pickle_file = f'token_{API_SERVICE_NAME}_{API_VERSION}.pickle'
    # print(pickle_file)

    if os.path.exists(pickle_file):
        with open(pickle_file, 'rb') as token:
            cred = pickle.load(token)

    if not cred or not cred.valid:
        if cred and cred.expired and cred.refresh_token:
            cred.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES)
            cred = flow.run_local_server()

        with open(pickle_file, 'wb') as token:
            pickle.dump(cred, token)

    try:
        service = build(API_SERVICE_NAME, API_VERSION, credentials=cred)
        print(API_SERVICE_NAME, 'service created successfully')
        return service
    except Exception as e:
        print('Unable to connect.')
        print(e)
        return None
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 1
oshliaer
@oshliaer
Google Products Expert
У вас может быть два случая:
  1. Использование разрешений пользователя. Тогда вы должны спросить разрешения у пользователя, сохранить его токен и делать запросы от имени пользователя
  2. Использование от имени сервера. Используйте способ авторизации через сервисный аккаунт
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы