рд╡рд░реНрддрдорд╛рди рдореЗрдВ Office365-REST-Python-Client==2.3.0.1
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдЬрдм рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ:
def upload_to_sharepoint():
url = 'https://tenant.sharepoint.com/sites/sitename'
credentials = {
'client_id': os.environ.get('client_id'),
'client_secret': os.environ.get('client_secret'),
}
context_auth = AuthenticationContext(url=url)
context_auth.acquire_token_for_app(client_id=credentials['client_id'],
client_secret=credentials['client_secret'])
ctx = ClientContext(url, context_auth)
web = ctx.web
ctx.load(web)
file_name = f"vat check {datetime.now().strftime('%Y-%m-%d')}"
path = os.path.join("/tmp", file_name)
with open(path, 'rb') as content_file:
file_content = content_file.read()
list_title = "VAT Check"
target_folder = ctx.web.lists.get_by_title(list_title).rootFolder
# name = os.path.basename(path)
target_file = target_folder.upload_file(file_name, file_content)
ctx.execute_query()
print(f"File url: {target_file.serverRelativeUrl}")
рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рдпрд╣ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ, рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?
AttributeError: 'ClientContext' object has no attribute '_auth_context'
рд╡рд╣ рддреЗрдЬрд╝ рдерд╛, рдзрдиреНрдпрд╡рд╛рдж @vgrem рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред
рдЕрднрд┐рд╡рд╛рджрди,
рдЗрд╕реЗ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! AuthenticationContext
рдореЗрдВ рдЧреБрдЬрд░рддреЗ рд╕рдордп рдЦреЛ рдЬрд╛рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд┐рдХрд▓рддрд╛ рд╣реИ ClientContext
ред
рджреВрд╕рд░реА рдУрд░, рдЪреВрдВрдХрд┐ AuthenticationContext.acquire_token_for_app
рдХреЛ рдЖрдЬрдХрд▓ _deprecated_ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк (_recommended_) рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
context_auth = AuthenticationContext(url=url)
context_auth.acquire_token_for_app(client_id=credentials['client_id'],
client_secret=credentials['client_secret'])
ctx = ClientContext(url, context_auth)
рдЬрд╛рдВрдЪ
credentials = ClientCredential(credentials['client_id'], credentials['client_secret'])
ctx = ClientContext(settings['url']).with_credentials(credentials)
рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЕрдкрдирд╛ рдкреИрдХреЗрдЬ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: pip install --upgrade Office365-REST-Python-Client
@spurthikaribasaiah
рд╣рд╛рдп @erfannariman рдФрд░ @vgrem ,
рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рдЦреЛрдЬреЗрдВред рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдкрд┐рдк рдЗрдВрд╕реНрдЯрд╛рд▓ --рдЕрдкрдЧреНрд░реЗрдб рдкрд┐рдк
рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ Office365-REST-Python-Client
рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ --рдЕрдкрдЧреНрд░реЗрдб Office365-REST-Python-Client
Office365.runtime.auth.authentication_context рд╕реЗ рдЖрдпрд╛рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╕рдВрдЧ
Office365 рд╕реЗ.sharepoint.client_context рдЖрдпрд╛рдд ClientContext
ctx_auth = рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ (рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ_рд╕рд╛рдЗрдЯрдпреВрдЖрд░рдПрд▓)
ctx_auth.acquire_token_for_user(рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдкрд╛рд╕)
ctx = ClientContext (Sharepoint_SiteUrl, ctx_auth)
рд╡реЗрдм = ctx.web
рд╕реАрдЯреАрдПрдХреНрд╕.рд▓реЛрдб (рд╡реЗрдм)
ctx.execute_query ()
рдкреНрд░рд┐рдВрдЯ ("рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдлрд▓")