Office365-rest-python-client: “检索身份验证 cookie 时出错” request_form_digest()

创建于 2018-07-24  ·  8评论  ·  资料来源: vgrem/Office365-REST-Python-Client

我有一些工作代码可以将文件上传到 Office 365 中的 SharePoint,但有时会失败。 这是简化的代码:

从 office365.runtime.auth.authentication_context 导入 AuthenticationContext
从 office365.sharepoint.client_context 导入 ClientContext
从 office365.runtime.utilities.request_options 导入 RequestOptions
从 os.path 导入 basename

ctx_auth = AuthenticationContext(url=base_url)

如果不是 ctx_auth.acquire_token_for_user(username=user_name, password=pwd):
打印(ctx_auth.get_last_error())
出口()

file_name = basename(file_path)
files_url ="{0}/_api/web/GetFolderByServerRelativeUrl('{1}')/Files/add(url='{2}', overwrite=true)"
full_url = files_url.format(base_url, folder_url, file_name)

选项 = RequestOptions(base_url)
上下文 = ClientContext(base_url, ctx_auth)
context.request_form_digest()

这是我得到的错误:

检索令牌时出错:AADSTS70002:验证凭据时出错。 AADSTS50053:您尝试使用错误的用户 ID 或密码登录的次数过多。
检索身份验证 cookie 时出错
回溯(最近一次调用最后一次):
文件“testsimplified.py”,第 24 行,在
context.request_form_digest()
文件“C:todoitems\pysharepointerrers\office365\sharepoint\client_context.py”,第 33 行,在 request_form_digest 中
self.authenticate_request(请求)
文件“C:todoitems\pysharepointerrers\office365\runtime\client_runtime_context.py”,第 16 行,authenticate_request
self.__auth_context.authenticate_request(request)
文件“C:todoitems\pysharepointerrers\office365\runtime\auth\authentication_context.py”,第 27 行,authenticate_request
request_options.set_header('Cookie', self.provider.get_authentication_cookie())
文件“C:todoitems\pysharepointerrers\office365\runtime\auth\saml_token_provider.py”,第 69 行,在 get_authentication_cookie 中
返回 '​​FedAuth=' + self.FedAuth + '; rtFa=' + self.rtFa
类型错误:必须是 str,而不是 NoneType

知道为什么这有时会起作用而有时不起作用吗? 我正在使用正确的用户名和密码。

question

最有用的评论

我最终构建了一个基于 MicroSoft Graph 将文件上传到 SharePoint 的脚本。 https://github.com/bobbydurrett/copyfiletosharepoint

所有8条评论

这只是周一开始发生在我身上。 我也在寻找解决方案。

是的,我也遇到了同样的错误,从星期一开始。 希望这能尽快解决。 代码失败于
ctx.execute_query()

ctx_auth = AuthenticationContext(url)

if ctx_auth.acquire_token_for_user(username, password):

    ctx = ClientContext(url, ctx_auth)
    web = ctx.web
    ctx.load(web)
    ctx.execute_query()
    print "SharePoint Site: {0}".format(web.properties['Title'])

else:
    print ctx_auth.get_last_error()

收到以下错误:

return 'FedAuth=' + self.FedAuth + '; rtFa=' + self.rtFa
TypeError: cannot concatenate 'str' and 'NoneType' objects

得到类似的错误。 错误是以下之一。 正在寻找一些解决方案,但还没有奏效,所以感谢修复。

检索令牌时出错:AADSTS70002:验证凭据时出错。 AADSTS50053:您尝试使用错误的用户 ID 或密码登录的次数过多。

检索令牌时出错:AADSTS70002:验证凭据时出错。 AADSTS50126:无效的用户名或密码

请注意,当通过浏览器访问站点时,相同的用户名和密码有效。

谢谢。

我最终构建了一个基于 MicroSoft Graph 将文件上传到 SharePoint 的脚本。 https://github.com/bobbydurrett/copyfiletosharepoint

谢谢@bobbydurrett这真的很有用!

我在使用内部帐户(O365 的 AD Azure)时遇到了同样的错误,但使用外部帐户时,身份验证过程运行正常! @majduddin @zachnamyat @EGCPHD您找到解决方案了吗?

我以这种方式解决了类似的问题: https :

建议关闭这个,因为类似的问题已经在2.1.10版本中得到解决,目前没有人遇到过

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Mark531 picture Mark531  ·  11评论

pobs93 picture pobs93  ·  4评论

stardust85 picture stardust85  ·  4评论

liuliqiu picture liuliqiu  ·  7评论

Cesaaar picture Cesaaar  ·  7评论