рдирдорд╕реНрддреЗ,
рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 2.1.7.post1 (рдкрд╛рдЗрдк рдлреНрд░реАрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ,
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрдВрдкрдиреА рдХреЗ рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ рд╕реЗ рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реАрдбрдореЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд) рд╣реИ:
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File
url = 'https://mycompany.sharepoint.com/sites/documentssite/'
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("Web title: {0}".format(web.properties['Title']))
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ:
An error occurred while retrieving auth cookies from https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc
рдореИрдВ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдХрд░ рджреЗрдЦрд╛, рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╡рд┐рдзрд┐ рд╕реЗ рдЖрддрд╛ рд╣реИ acquire_authentication_cookie
рд╡рд░реНрдЧ рдХреЗ SamlTokenProvider
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рдзрд┐ рдХреЛ federated=True
рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП HTTP рдЕрдиреБрд░реЛрдз https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc рдкрд░ HEAD рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдиреАрдЪреЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
def acquire_authentication_cookie(self, security_token, federated=False):
...
else:
self._auth_cookies['SPOIDCRL'] = None
session.head(self.__sts_profile.signInPageUrl,
headers={
'User-Agent': 'Office365 Python Client',
'X-IDCRL_ACCEPTED': 't',
'Authorization': 'BPOSIDCRL {0}'.format(security_token),
'Content-Type': 'application/x-www-form-urlencoded'
})
logger.debug_secrets("session.cookies: %s", session.cookies)
cookies = requests.utils.dict_from_cookiejar(session.cookies)
logger.debug_secrets("cookies: %s", cookies)
if not cookies:
self.error = "An error occurred while retrieving auth cookies from {0}".format(self.__sts_profile.signInPageUrl)
logger.error(self.error)
return False
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреЛрдИ рдХреБрдХреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕рдВрджреЗрд╢ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред
рд╡реИрд╕реЗ, рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реБрдИ рдЬрдм рдореИрдВрдиреЗ url рдХреЛ ' https://mycompany.sharepoint.com ' рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ред
рдЕрдЧрд░ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред
рдЖрдкрдХрд╛ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рд╣реА рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж !
рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЦрдмрд░реЗрдВ:
рдЬрдм рдореИрдВ рдХрд░реНрд▓ рдХреЗ рд╕рд╛рде https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc рдкрд░ HEAD рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ https://mycompany.sharepoint.com/_vti_bin/idcrl.svc/ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб: 307)ред
рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛, рдореБрдЭреЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА ...
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдореЗрд░реА рдХрдВрдкрдиреА рдХреА рддрд░рдл рд╕реЗ рдЖрдпрд╛ рд╣реИ..
рдЕрднрд┐рд╡рд╛рджрди!
рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
2.1.7.post1
рдЗрд╕ рд╕рдордп рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдПрдХ рдФрд░ рд╢реЙрдЯ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди _latest_ рд╕рдВрд╕реНрдХрд░рдг (рдЗрд╕ рд╕рдордп 2.1.10.1
) рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ GitHub рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git
рдпрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддрдм рд╕реЗ рдХреБрдЫ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рдерд╛! :))
рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :D