Office365-rest-python-client: AttributeError : 'ClientContext'๊ฐœ์ฒด์— '_auth_context'์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 12์›” 07์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vgrem/Office365-REST-Python-Client

ํ˜„์žฌ 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'

๋ชจ๋“  6 ๋Œ“๊ธ€

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธ ํ•œ @vgrem ๋•๋ถ„์—

์ธ์‚ฌ๋ง,

์žก์•„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ClientContext ์ „๋‹ฌํ•  ๋•Œ AuthenticationContext ์ธ์Šคํ„ด์Šค๊ฐ€ ์†์‹ค ๋œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ, 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 ์•ˆ๋…•ํ•˜์„ธ์š”.

์œ„์˜ ๋ช…๋ น์œผ๋กœ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์•„๋ž˜ ์ฝ”๋“œ ์Šค ๋‹ˆํŽซ์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค. ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

pip ์„ค์น˜-pip ์—…๊ทธ๋ ˆ์ด๋“œ
pip ์„ค์น˜ Office365-REST-Python-Client
pip ์„ค์น˜-Office365-REST-Python-Client ์—…๊ทธ๋ ˆ์ด๋“œ

office365.runtime.auth.authentication_context์—์„œ ๊ฐ€์ ธ ์˜ค๊ธฐ AuthenticationContext
office365.sharepoint.client_context์—์„œ ClientContext ๊ฐ€์ ธ ์˜ค๊ธฐ

ctx_auth = AuthenticationContext (Sharepoint_SiteUrl)
ctx_auth.acquire_token_for_user (์‚ฌ์šฉ์ž, ํŒจ์Šค)
ctx = ClientContext (Sharepoint_SiteUrl, ctx_auth)
์›น = ctx.web
ctx.load (์›น)
ctx.execute_query ()
print ( "์ธ์ฆ ์„ฑ๊ณต")

image

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰