Office365-rest-python-client: рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдЕрдиреБрдкрд▓рдмреНрдз рд╕реНрдХреАрдорд╛ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдЕрдХреНрддреВре░ 2020  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vgrem/Office365-REST-Python-Client

рдирдорд╕реНрддреЗ!

рдореБрдЭреЗ Office365 рдХреЗ рдирд╡реАрдирддрдо 2.2.1 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SharePoint рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдЬрдм рдореИрдВ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рд╕реЗ "MissingSchema" рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ, рдЕрдЧрд░ рдореИрдВ 2.1.5 рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рдХреЛрдб рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдореИрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ; рдЕрддрд┐ рдЙрдкрдпреЛрдЧреА!

from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File

def auth(username, password):
    ctx_auth = AuthenticationContext(url)
    if ctx_auth.acquire_token_for_user(username, password):
      ctx = ClientContext(url, ctx_auth)
      return ctx

ctx = auth(username, password)
response = File.open_binary(ctx, relative_url)

рддреНрд░реБрдЯрд┐:
MissingSchema: Invalid URL "<bound method ClientContext.service_root_url of <office365.sharepoint.client_context.ClientContext object at 0x7fb4e44c3d90>>web/getfilebyserverrelativeurl('MYRELATIVEURL')/\\$value": No schema supplied. Perhaps you meant http://<bound method ClientContext.service_root_url of <office365.sharepoint.client_context.ClientContext object at 0x7fb4e44c3d90>>web/getfilebyserverrelativeurl('MYRELATIVEURL')/\$value?

рдореИрдХреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛,
рдСрдлрд┐рд╕рейремрел реи.реи.рез,
рдкрд╛рдпрдерди 3.8.3,
рдЕрдиреБрд░реЛрдз 2.2.4

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

2.2.1 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЧрд┐рдЯ рд╕реЗ рдирд╡реАрдирддрдо рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ ctx.service_root_url рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП ctx.service_root_url()

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

2.2.1 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЧрд┐рдЯ рд╕реЗ рдирд╡реАрдирддрдо рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ ctx.service_root_url рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП ctx.service_root_url()

рдзрдиреНрдпрд╡рд╛рдж @efremovd рдФрд░ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП @etiennecelery рдФрд░ рдпрд╣ рдЗрдВрдЧрд┐рдд, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ 2.2.1 рдХрд╛рд░рдг рдкреБрдирд░реНрд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП service_root_url рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ред

рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, GitHub рд╕реЗ рдЙрдкрд▓рдмреНрдз _latest_ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:

pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

file_url = '{server-relative-path-to-download}'
with open(download_path, "wb") as local_file:
    file = ctx.web.get_file_by_server_relative_url(file_url).download(local_file).execute_query()

рд╢реБрдХреНрд░рд┐рдпрд╛!! рдорд╣рд╛рди рдХрд╛рдо

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ 2.2.2 рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Bachatero picture Bachatero  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Cesaaar picture Cesaaar  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

stardust85 picture stardust85  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

erfannariman picture erfannariman  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

domdinicola picture domdinicola  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ