Я проверяю некоторые функции OneDrive с помощью OneDriveSDK-Python .
Но когда я не вошел в систему, я должен войти в OneDrive, который открывается в браузере.
Я хочу сделать полностью автоматический процесс управления OneDrive без входа в систему (даже один раз) / без использования браузера.
Это должно выглядеть так:
1. введите логин, пароль, client_id, client_secret
2. если подключено: вы можете управлять своим OneDrive из командной строки
К сожалению, OneDriveSdk открывает браузер (webbrowser.open
внутри GetAuthCodeServer.get_auth_code()
), и я должен войти в систему.
def authentication_ind(self):
"""
Client authentication.
"""
self.client = onedrivesdk.get_default_client(
client_id=self.client_id, scopes=self.__SCOPES)
auth_url = self.client.auth_provider.get_auth_url(self.__REDIRECT_URI)
# take code and block stdout
output = io.StringIO()
with redirect_stdout(output), redirect_stderr(output):
self.block(auth_url)
self.client.auth_provider.authenticate(self.code, self.__REDIRECT_URI, self.client_secret)
def block(self, auth_url):
"""
Function returns token(code)
:param auth_url: url to authenticate
:return: <String> token
"""
# this will block until we have the code
self.code = GetAuthCodeServer.get_auth_code(auth_url, self.__REDIRECT_URI)
Я бы хотел обойти это. Одно выполнение кода должно было выполнить все операции на диске (аутентификация, авторизация и некоторые операции на диске (например, копирование и т. Д.))