Двойное резервное копирование на ошибку клиента onedrive
Я пытаюсь сделать резервную копию файлов на моем компьютере в onedrive с двуличностью. Я установил все зависимости, при запуске duplicity создается сгенерированная ссылка авторизации, которую я должен открыть в браузере, а затем в duplicity после предоставления разрешений для приложения вставить возвращаемый URL.
Я делаю все эти шаги, но двуличность возвращает меня
Traceback (most recent call last):
File "/usr/bin/duplicity", line 1532, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1526, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1364, in main
action = commandline.ProcessCommandLine(sys.argv[1:])
File "/usr/lib/python2.7/site-packages/duplicity/commandline.py", line 1116, in ProcessCommandLine
backup, local_pathname = set_backend(args[0], args[1])
File "/usr/lib/python2.7/site-packages/duplicity/commandline.py", line 1005, in set_backend
globals.backend = backend.get_backend(bend)
File "/usr/lib/python2.7/site-packages/duplicity/backend.py", line 223, in get_backend
obj = get_backend_object(url_string)
File "/usr/lib/python2.7/site-packages/duplicity/backend.py", line 209, in get_backend_object
return factory(pu)
File "/usr/lib/python2.7/site-packages/duplicity/backends/onedrivebackend.py", line 90, in __init__
self.initialize_oauth2_session()
File "/usr/lib/python2.7/site-packages/duplicity/backends/onedrivebackend.py", line 153, in initialize_oauth2_session
authorization_response=redirected_to)
File "/usr/lib/python2.7/site-packages/requests_oauthlib/oauth2_session.py", line 232, in fetch_token
self._client.parse_request_body_response(r.text, scope=self.scope)
File "/usr/lib/python2.7/site-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 409, in parse_request_body_response
self.token = parse_token_response(body, scope=scope)
File "/usr/lib/python2.7/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 376, in parse_token_response
validate_token_parameters(params)
File "/usr/lib/python2.7/site-packages/oauthlib/oauth2/rfc6749/parameters.py", line 383, in validate_token_parameters
raise_from_error(params.get('error'), params)
File "/usr/lib/python2.7/site-packages/oauthlib/oauth2/rfc6749/errors.py", line 271, in raise_from_error
raise cls(**kwargs)
InvalidClientError: (invalid_client) The client does not exist. If you are the application developer, configure a new application through the application management site at https://manage.dev.live.com/.
Похоже, что нет приложения с идентификатором, с которым дублирование создает аутентификационную ссылку. Но когда я перехожу по ссылке, предоставленной duplicity, я вижу, что "Duplicity запрашивает разрешения".
Так я должен добавить свое собственное приложение и каким-то образом предоставить его идентификатор для двуличности? (Я искал, как это сделать, но безрезультатно) или это ошибка двойственности?
1 ответ
Для любого программного взаимодействия с Windows Live требуется идентификатор клиента, который однозначно идентифицирует ваше приложение для Windows Live. Ваше приложение должно включать идентификатор клиента в каждый запрос, который оно отправляет в службу Messenger Connect API.
Вы должны зарегистрировать свое приложение, как показано в этом официальном руководстве по Windows Live: https://msdn.microsoft.com/en-us/library/ff751474.aspx
А затем передайте свой идентификатор приложению, чтобы иметь возможность аутентификации в Windows Live во время выполнения при запросе к API.
Вы можете использовать код в https://github.com/fkalis/bash-onedrive-upload который также обеспечивает полную поддержку для загрузки файлов, размер которых превышает 100 МБ.