我正在使用OneDriveSDK-Python检查OneDrive上的某些功能。
但是,当我没有登录时,我必须登录到在浏览器中打开的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)
我想解决这个问题。执行一个代码应该已经完成了磁盘上的所有操作(身份验证,授权以及磁盘上的某些操作(例如复制项等))