μλ νμΈμ,
λ΄ λͺ©νλ μ
°μ΄ν¬μΈνΈ μ¬μ΄νΈ λ¬Έμ λΌμ΄λΈλ¬λ¦¬/λͺ©λ‘μ λ΄μ©μ μΈμνλ κ²μ
λλ€.
μΆλ ₯μ΄ μκ±°λ μ€λ₯κ° λ°μνμ§ μλ μ΄μ λ₯Ό μμ λ΄λ €κ³ λ
Έλ ₯ μ€μ
λλ€.
λ΄ URL https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx
μ 2κ°μ ν΄λμ 1κ°μ νμΌμ΄ ν¬ν¨λ λ¬Έμλ₯Ό κ°λ¦¬ν€μ§λ§ μ΄ μ€ν¬λ¦½νΈλ₯Ό μ€ννμ¬ λ³Ό μ μλ κ² κ°μ΅λλ€.
list_objectλ₯Ό "곡μ λ¬Έμ"μμ λ체 μ λͺ©μΌλ‘ λ³κ²½ν΄λ μ°¨μ΄κ° μμ΅λλ€.
μ¬κΈ°μ λΆλͺ ν κ²μ λμΉκ³ μμ΅λκΉ? λμμ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.
κ°μ¬ν©λλ€.
λ§λ₯΄μ
office365.runtime.auth.authentication_contextμμ μΈμ¦ 컨ν
μ€νΈ κ°μ Έμ€κΈ°
office365.sharepoint.client_contextμμ ClientContext κ°μ Έμ€κΈ°
μ± μ€μ = {
'URL': ' https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx ',
'ν΄λΌμ΄μΈνΈ ID': 'f638a093-aa8f-48c7-a4e6-998d7d1ee388',
'client_secret': 'xysjblahblah',
}
__name__ == '__main__'μΈ κ²½μ°:
context_auth = AuthenticationContext(url=app_settings['url'])
context_auth.acquire_token_for_app(client_id=app_settings['client_id'], client_secret=app_settings['client_secret'])μΈ κ²½μ°:
ctx = ClientContext(app_settings['url'], context_auth)
list_object = ctx.web.lists.get_by_title("Shared Documents")
#list_object = ctx.web.lists.get_by_title("Documents")
#list_object = ctx.web.lists.get_by_title("FRAReporting")
folder = list_object.root_folder
ctx.load(folder)
ctx.execute_query()
files = folder.files
ctx.load(files)
ctx.execute_query()
for myfile in files:
print("File name: {0}".format(myfile.properties["Name"]))
Office365-REST-Python-Client(2.1.1) λ° python 3.6.4λ₯Ό μ¬μ©νλ btw
μΈμ¬λ§!
λΆννλ μ 곡λ μμ μμ λ¬Έμ λ₯Ό λ°κ²¬ν μ μμμ΅λλ€. λͺ¨λ κ²μ΄ μ’μ 보μ λλ€.
μλ μ€λͺ
μμ:
_2κ°μ ν΄λμ 1κ°μ νμΌμ ν¬ν¨νλ λ¬Έμλ₯Ό κ°λ¦¬ν΅λλ€_
νμΌμ΄ λ£¨νΈ ν΄λ μλμ μ μ₯λμ§ μκ³ λμ νμ ν΄λμ μ μ₯λ μ μμ΅λκΉ?
μ΄μ¨λ , νλͺ©μ΄ λ°νλμλμ§ μ¬λΆλ₯Ό νμΈνκΈ° μν΄ μ΄ λ°©λ²μ μλν΄ μ£Όμκ² μ΅λκΉ?
list_obj = context.web.lists.get_by_title(list_title)
qry = CamlQuery.create_all_items_query()
items = list_obj.get_items(qry)
context.load(items)
context.execute_query()
for cur_item in items:
print("File name: {0}".format(cur_item.properties["Title"]))
μλ
νμΈμ,
μ½λλ₯Ό μ€νν λ λ€μμ μ»μ΅λλ€.
PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.py
μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):
νμΌ ".sharePoint_office365_test4.py", 36ν,
ctx.execute_query()
νμΌ "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_runtime_context.py", 36ν, execute_query
self.pending_request.execute_query()
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py" νμΌ, 32ν, execute_query
self.execute_pending_queries() λ°ν
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py" νμΌ, 38ν, execute_pending_queries
μλ΅ = self.execute_request_direct(μμ²)
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py" νμΌ, 109ν, execute_request_direct
self.context.ensure_form_digest(μμ²_μ΅μ
)
νμΌ "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py", 27ν,sure_form_digest
self.request_form_digest()
"C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py" νμΌ, 39ν, request_form_digest
νμ΄λ‘λ = μλ΅.json()
νμΌ "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesrequestsmodels.py", 897ν, json
λ°ν complexjson.loads(self.text, **kwargs)
νμΌ "C:UsersfooAppDataLocalProgramsPythonPython36libjson__init__.py", 354ν, λ‘λ μ€
λ°ν _default_decoder.decode(λ€)
νμΌ "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", 339ν, λμ½λ©
obj, λ = self.raw_decode(s, idx=_w(s, 0).end())
νμΌ "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", 362ν, raw_decode
μμμμ JSONDecodeError("μμ κ°", s, err.value) λ°μ
json.decoder.JSONDecodeError: μμ κ°: ν 2 μ΄ 1(λ¬Έμ 2)
PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint>
raw_decode μμΈμμ λ¬Έμμ΄μ μΆλ ₯νλ©΄ λ€μκ³Ό κ°μ΅λλ€. μ²¨λΆ νμΌμ μ°Έμ‘°νμμμ€.
μκ° λ΄ μ£Όμ
μ λλ¨ν κ°μ¬ν©λλ€.
λ§λ₯΄μ
λ λ²μ§Έλ‘ κ²ν νλ λμ(κ·Έλ¦¬κ³ μ 곡λ μ€ν¬λ¦°μ·μ λ³΄κ³ κ°μ¬ν©λλ€!) μ 곡λ URLμ΄ μ ν¨νμ§ μμ κ² κ°μ΅λλ€.
app_settings = {
'url': 'https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
needs to be site url
}
μ 곡λ URLμ _λΌμ΄λΈλ¬λ¦¬ 보기 νμ΄μ§μ μ λ URL_μ ν΄λΉ νμ§λ§ μ€μ λ‘ ClientContext
μμλλ κ²μ siteUrl μ΄λ―λ‘ λ€μ λμ :
https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx
μλνμμμ€:
https://my.jci.com/sites/FRAReporting/
λΉμ μ΄ μ λμ μΌλ‘ μ³μμ΅λλ€.
λΉμ μ λ΄ ν루λ₯Ό λ§λ€μμ΅λλ€. μΆ©λΆν κ°μ¬ν μ μμ΅λλ€.
λ―Έλμ.
μ΄μ μ€ν¬λ¦½νΈλ₯Ό μ€ννλ©΄ 15νμ²λΌ μΆλ ₯λ©λλ€.
C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
νμΌ μ΄λ¦: μμ
λ΄ (λλ λΉμ μ μλ―Έν©λλ€ :) μλ μ€ν¬λ¦½νΈλ₯Ό μ€ννλ λμ μμ κ²°κ³Όλ₯Ό μ»μ΅λλ€.
νμΌ μ΄λ¦: Document.docx
νμΌ μ΄λ¦: access_denied.txt
λ΄ μΏΌλ¦¬λ μλ₯Ό λ€μ΄ SS μμ "TEST" ν΄λ μλμ μλ λͺ¨λ νμΌμ λμ΄νλ λ°©λ²μ λλ€. κ·Έκ²μ΄ λ°λ‘ μ κ° μ±μ·¨νλ €κ³ νλ κ²μ λλ€.
λ΄ μ νν λ¬Έμ μ λν΄ μμΈν μ€λͺ ν μ μλμ§ λͺ¨λ₯΄κ² μ΅λλ€. 루νΈμμ νμΌμ μ±κ³΅μ μΌλ‘ μΈμνλ κ²μ²λΌ(λλ κ·Έκ²μ΄ 무μμ΄λ , λ¬Έμ):
νμΌ μ΄λ¦: Document.docx
νμΌ μ΄λ¦: access_denied.txt
λλ ν μ μλ€. κ·Έλ¬λ μ€νλ € ν΄λμ μλ νμΌ λͺ©λ‘μ μ»κ³ μΆμ΅λλ€.