Office365-rest-python-client: Tidak Dapat Mengakses Informasi Apa Pun Tentang Daftar SharePoint Saya, URL Sumber Daya Daftar Terlihat Salah

Dibuat pada 28 Agu 2020  ·  5Komentar  ·  Sumber: vgrem/Office365-REST-Python-Client

Inilah yang saya gunakan.

site_url = "https://mycompany.sharepoint.com/sites/mysite/"
clientid = "12345"
clientsecret = "67890"
clientcredentials = ClientCredential(clientid, clientsecret)
ctx = ClientContext(site_url).with_credentials(clientcredentials)
target_list = "ListIWant"
list_object = ctx.web.lists.get_by_title(target_list)
items = list_object.get_items()
ctx.load(items)
ctx.execute_query()

Semuanya berjalan tanpa kesalahan, tetapi pada akhirnya list_object saya tidak memiliki item atau bidang apa pun ... Ketika saya melihat resource_url di list_object, itu bukan URL yang benar. Ada garis miring ekstra di depan dan di belakang nama daftar. Menghapus garis miring dan menyalin ke bilah alamat Edge mengunduh file XML dengan informasi tentang daftar, tetapi apa adanya, itu tidak akan berfungsi ... jadi saya berasumsi itulah yang menyebabkan kesalahan ... tapi saya tidak' g cara memperbaikinya.

Saya merasa seperti saya sangat dekat ... ada yang bisa membantu?
example

question

Semua 5 komentar

Kamu hampir sampai.
Objek items bertipe ListItemCollection .
Jika Anda mencoba len(items) , itu akan mengembalikan jumlah item dalam koleksi
Dan sekarang Anda dapat menghitung item-item tersebut:

for item in items:
    print(item.properties)

setiap item sekarang bertipe ListItem yang dapat Anda manipulasi

juga, garis miring terbalik tambahan untuk keluar dari ' dalam string python, itu benar-benar normal

Kamu hampir sampai.
Objek items bertipe ListItemCollection .
Jika Anda mencoba len(item) , itu akan mengembalikan jumlah item dalam koleksi
Dan sekarang Anda dapat menghitung item-item tersebut:

for item in items:
    print(item.properties)

setiap item sekarang bertipe ListItem yang dapat Anda manipulasi

Terima kasih bantuan Anda tetapi print(len(items)) mengembalikan 0

Jika itu bukan masalah dengan resource_url. mungkinkah ada yang salah dengan Izin Aplikasi yang saya tetapkan untuk situs SharePoint? Saya mengikuti petunjuk dari https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs (termasuk mengatur permintaan izin XML), tetapi ketika saya kembali ke _layouts/15 /appinv.aspx dan lihat ID klien saya, bidang XML permintaan izin selalu kosong... Ini adalah pertama kalinya saya melakukan ini jadi saya tidak yakin apakah itu cara kerjanya atau tidak.

Saya telah menggunakan pengaturan ini untuk xml (dan saya memilih percaya aplikasi dengan jelas).

   <AppPermissionRequests AllowAppOnlyPolicy="true">
   <AppPermissionRequest Scope="http://mycompany.sharepoint.com/sites/mysite" Right="FullControl" />
   </AppPermissionRequests>

Ini sedikit berbeda dari petunjuk yang saya temukan di docs.microsoft.com, tetapi saya hanya memiliki kemampuan untuk memberikan akses ke situs saya, bukan penyewa. Aplikasi ini terdaftar di 'Izin aplikasi pengumpulan situs' setelahnya, jadi saya menganggapnya berfungsi ... tetapi faktanya saya tidak melihat izin xml apa pun ketika saya kembali ke appinv.aspx.

Pertanyaan bagus, dalam ingatan saya, ketika saya berurusan dengan masalah izin, itu sangat jelas.
Aplikasi Anda yang sebenarnya disetujui akan berada di _layouts/15/AppPrincipals.aspx
Dan itu normal bahwa Anda tidak melihat xml di appinv.

Jika ingatanku benar, ruang lingkup yang aku gunakan adalah http://sharepoint/site/sitecollection
(Sunting :) Inilah lembar contekan: https://medium.com/ng-sp/sharepoint-add-in-permission-xml-cheat-sheet-64b87d8d7600

Sudahkah Anda mencoba terhubung ke api melalui tukang pos?

Inilah yang saya dapatkan dari penerjemah dengan koneksi saya saat ini.

>>> items = ctx.web.lists.get_by_title('Events').items
>>> items
<office365.sharepoint.listitems.listItem_collection.ListItemCollection object at 0x10d064af0>
>>> len(items)
0
>>> ctx.load(items)
>>> ctx.execute_query()
>>> len(items)
2

Salam pembuka,

Kamu hampir sampai.
Objek items bertipe ListItemCollection .
Jika Anda mencoba len(items) , itu akan mengembalikan jumlah item dalam koleksi
Dan sekarang Anda dapat menghitung item-item tersebut:

for item in items:
    print(item.properties)

setiap item sekarang bertipe ListItem yang dapat Anda manipulasi

juga, garis miring terbalik tambahan untuk keluar dari ' dalam string python, itu benar-benar normal

setuju dan memang garis miring terbalik tambahan wajib untuk keluar dari karakter tanda kutip untuk membuat URL OData valid

Komentar ini tampaknya menjelaskan akar permasalahan:

Saya telah menggunakan pengaturan ini untuk xml (dan saya memilih percaya aplikasi dengan jelas).

   <AppPermissionRequests AllowAppOnlyPolicy="true">
   <AppPermissionRequest Scope="http://mycompany.sharepoint.com/sites/mysite" Right="FullControl" />
   </AppPermissionRequests>

Ini sedikit berbeda dari petunjuk yang saya temukan di docs.microsoft.com, tetapi saya hanya memiliki kemampuan untuk memberikan akses ke situs saya, bukan penyewa. Aplikasi ini terdaftar di 'Izin aplikasi pengumpulan situs' setelahnya, jadi saya menganggapnya berfungsi ... tetapi faktanya saya tidak melihat izin xml apa pun ketika saya kembali ke appinv.aspx.

cakupan yang disediakan terlihat _invalid_ : http://mycompany.sharepoint.com/sites/mysite

  • mycompany : harus berupa sharepoint placeholder yang telah ditentukan sebelumnya
  • sites/mysite sama, harus _valid_ placeholder, misalnya content/sitecollection atau content/sitecollection/web

Jadi, solusinya adalah memberikan izin aplikasi dengan memberikan permintaan izin _valid_, misalnya:

per kumpulan situs :

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="FullControl" />
</AppPermissionRequests>

per web :

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
</AppPermissionRequests>

Daftar _permission scopes_ dapat ditemukan di izin Add-in di halaman

Dan yang tak kalah pentingnya, ada halaman wiki yang juga menyediakan instruksi langkah demi langkah cara mengatur prinsip aplikasi dan memberikan izin.

Terima kasih! Ya. Cakupan izin XML tampaknya menjadi akar penyebab masalah!
Dari pengujian awal saya, tampaknya berfungsi sekarang.

Ini bagus. Saya telah menggunakan skrip VBA di MS Access selama setahun terakhir untuk memperbarui daftar SharePoint saya. Mengetahui bagian ini membuat saya selangkah lebih dekat untuk mem-porting semuanya ke Python.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat