Загрузка на Google Диск через Python API без присмотраPython

Программы на Python
Ответить
Гость
 Загрузка на Google Диск через Python API без присмотра

Сообщение Гость »


Мне необходимо автоматически загружать видеофайлы на диск Google. я хочу использовать API Google Диска. но проблема в том, что
[*]Если я использую учетную запись службы, Google создает адрес электронной почты учетной записи службы и просит меня предоставить общий доступ к папке для загрузки файлов. Значит, мой Google Диск не является владельцем файла. И мы не уверены, где хранятся эти файлы. [*]если я использую метод oauth, он заполняет веб-страницу для входа в систему, и токены быстро исчезают, что бесполезно для автоматического выполнения.
Когда я запустил приведенный ниже код, чтобы олицетворить электронную почту, я получаю сообщение об ошибке.
импортировать googleapiclient.discovery из google.oauth2.service_account импортировать учетные данные # Загрузить учетные данные сервисной учетной записи из файла ключей JSON SERVICE_ACCOUNT_KEY_FILE = 'apikeys.json' ОБЛАСТИ = ['https://www.googleapis.com/auth/drive'] защита impersonate_user(user_email): учетные данные = Credentials.from_service_account_file(SERVICE_ACCOUNT_KEY_FILE, области = ОБЛАСТИ) учетные данные = учетные данные.with_subject(user_email) вернуть учетные данные Защиту upload_file_to_drive (учетные данные, путь к файлу, идентификатор_папки): Drive_service = googleapiclient.discovery.build('диск', 'v3', учетные данные = учетные данные) file_metadata = {'name': 'my_video.mp4', 'parents': [folder_id]} media = googleapiclient.http.MediaFileUpload(file_path, mimetype='video/mp4') загруженный_файл = диск_сервис.файлы().создать( body=file_metadata, media_body=media, поля='id').execute() print(f'Файл загружен с идентификатором: {uploaded_file["id"]}') если __name__ == '__main__': # Замените адрес электронной почты пользователя и идентификатор целевой папки. user_email = 'osara.jenkins.rt@gmail.com' target_folder_id = '1unzEKIYnXnBlYEaJxIEiWpHM2MA-Du6D' video_file_path = r'C:\Users\M000747\OneDrive - Osara Technologies Limited\Desktop\coding\zoom_download\2024-02-27_17-44-15\CSEC Integrated Science\CSEC Integrated Science_shared_screen_with_speaker_view_2024-02-24T22_35_06Z.mp4' user_credentials = impersonate_user(user_email) upload_file_to_drive(user_credentials, video_file_path, target_folder_id)``` Ошибка: вызывать исключения.RefreshError( google.auth.Exceptions.RefreshError: ('unauthorized_client: клиент не имеет права получать токены доступа с помощью этого метода, или клиент не авторизован ни для одной из запрошенных областей.', {'error': 'unauthorized_client', 'error_description': ' Клиент не имеет права получать токены доступа с помощью этого метода или клиент не авторизован ни для одной из запрошенных областей.'}) пожалуйста, помогите
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»