Hai,
tujuan saya adalah mencetak konten perpustakaan/daftar dokumen situs sharepoint
dan saya mencoba mencari tahu mengapa saya tidak mendapatkan hasil/tidak ada kesalahan apa pun.
Url saya https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx
menunjuk ke Dokumen yang berisi 2 folder dan 1 file tetapi sepertinya saya tidak dapat melihatnya dengan menjalankan skrip ini.
Mengubah list_object dari "Dokumen Bersama" ke judul alternatif tidak ada bedanya.
Apakah saya melewatkan sesuatu yang jelas di sini, tolong? Bantuan apa pun akan sangat dihargai.
Terima kasih.
Marcel
dari office365.runtime.auth.authentication_context impor AuthenticationContext
dari office365.sharepoint.client_context impor ClientContext
pengaturan_aplikasi = {
'url': ' https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx ',
'client_id': 'f638a093-aa8f-48c7-a4e6-998d7d1ee388',
'client_secret': 'xysjblahblah',
}
jika __name__ == '__main__':
context_auth = AuthenticationContext(url=app_settings['url'])
jika 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"]))
btw menggunakan Office365-REST-Python-Client (2.1.1) dan python 3.6.4
Salam pembuka!
Sayangnya saya tidak dapat menemukan masalah apa pun dengan contoh yang diberikan, semuanya terlihat bagus untuk saya.
Dari uraian di bawah ini:
_menunjuk ke Dokumen yang berisi 2 folder dan 1 file_
mungkinkah file tidak disimpan di bawah folder root tetapi di bawah sub folder?
Bagaimanapun, bisakah Anda mencoba pendekatan ini hanya untuk memastikan apakah barang dikembalikan atau tidak?
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"]))
Hai,
Saya mendapatkan yang berikut ini saat menjalankan kode Anda:
PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.py
Traceback (panggilan terakhir terakhir):
File ".sharePoint_office365_test4.py", baris 36, di
ctx.execute_query()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_runtime_context.py", baris 36, di execute_query
self.pending_request.execute_query()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py", baris 32, di execute_query
kembalikan self.execute_pending_queries()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py", baris 38, di execute_pending_queries
respon = self.execute_request_direct(permintaan)
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py", baris 109, di execute_request_direct
self.context.ensure_form_digest(request_options)
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py", baris 27, di sure_form_digest
self.request_form_digest()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py", baris 39, di request_form_digest
muatan = respon.json()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesrequestsmodels.py", baris 897, di json
kembali complexjson.loads(self.text, **kwargs)
File "C:UsersfooAppDataLocalProgramsPythonPython36libjson__init__.py", baris 354, sedang dimuat
kembalikan _default_decoder.decode
Berkas "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", baris 339, dalam dekode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", baris 362, di raw_decode
menaikkan JSONDecodeError("Mengharapkan nilai", s, err.value) dari Tidak ada
json.decoder.JSONDecodeError: Nilai yang diharapkan: baris 2 kolom 1 (char 2)
PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint>
Ketika saya mencetak string dalam pengecualian raw_decode, terlihat seperti ini, silakan lihat lampiran
Terima kasih banyak atas waktu Anda.
Marcel
Saat meninjau untuk kedua kalinya (dan melihat tangkapan layar yang disediakan, terima kasih untuk itu!), Saya melihat url yang diberikan tampaknya tidak valid:
app_settings = {
'url': 'https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
needs to be site url
}
Url yang disediakan sesuai dengan _absolute Url dari halaman tampilan perpustakaan_ tetapi yang sebenarnya diharapkan ClientContext
adalah siteUrl , jadi alih-alih:
https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx
silahkan mencoba:
https://my.jci.com/sites/FRAReporting/
Anda benar sekali, itu saja.
Anda membuat hari saya, tidak bisa cukup berterima kasih.
M.
Menjalankan skrip Anda sekarang dicetak seperti 15 baris:
C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
saat menjalankan skrip asli saya (maksud saya milik Anda :) saya mendapatkan hasil yang diharapkan:
Nama file: Document.docx
Nama file: access_denied.txt
Pertanyaan saya adalah, bagaimana saya bisa membuat daftar semua file di bawah folder "TEST" dari SS di atas, misalnya. Itulah tepatnya yang saya coba capai.
Saya tidak tahu apakah saya bisa menguraikan masalah saya yang sebenarnya. Sama seperti Anda berhasil mencetak file Anda di root (atau apa pun namanya; Dokumen):
Nama file: Document.docx
Nama file: access_denied.txt
Saya juga bisa melakukan itu. Tapi, ingin mendapatkan daftar file di folder bukan.