Saya mencoba mengunduh file yang dapat diakses (melalui browser) di URL ini:
https://test.sharepoint.com/sites/team/team documents/subfolder/document.docx
Saya menggunakan objek ClientRequest dengan kode berikut:
url = "https://test.sharepoint.com/sites/team"
username="[email protected]"
password="pass"
ctxAuth = AuthenticationContext(url)
if ctxAuth.acquire_token_for_user(username, password):
print 'authentication successful, proceeding...'
request = ClientRequest(ctxAuth)
requestUrl="{0}/_api/web/getfilebyserverrelativeurl('team documents/subfolder/document.docx')"
options=RequestOptions(requestUrl.format(url))
data = request.execute_query_direct(options)
Saat menjalankan ini, saya mendapatkan jejak berikut:
$ python test.py
No handlers could be found for logger "client.office365.runtime.auth.saml_token_provider.SamlTokenProvider.process_service_token_response"
authentication successful, proceeding...
Traceback (most recent call last):
File "test.py", line 14, in <module>
data = request.execute_query_direct(options)
File "/usr/lib/python2.7/site-packages/client/office365/runtime/client_request.py", line 77, in execute_query_direct
self.context.authenticate_request(request_options)
File "/usr/lib/python2.7/site-packages/client/office365/runtime/auth/authentication_context.py", line 20, in authenticate_request
request_options.set_header('Cookie', self.provider.get_authentication_cookie())
File "/usr/lib/python2.7/site-packages/client/office365/runtime/auth/saml_token_provider.py", line 65, in get_authentication_cookie
return 'FedAuth=' + self.FedAuth + '; rtFa=' + self.rtFa
TypeError: cannot concatenate 'str' and 'NoneType' objects
Apakah ada yang salah dengan cara saya menggunakan modul?
Saya memiliki masalah serupa karena instance SharePoint kami berjalan di belakang proxy. Saya harus mensubklasifikasikan SamlTokenProvider
untuk mengganti url login ( self.sts
) dan nama cookie. Saya pikir masalahnya adalah selama inisialisasi, kode tidak memeriksa hasil acquire_authentication_cookie
jadi jika otentikasi gagal, Anda tidak akan mendengarnya sampai cookie digunakan.
Saya mengalami masalah yang sama. Sepertinya kegagalan otentikasi tidak ditangani oleh pengecualian. Itu hanya menggelembung ketika cookie ditanyai. Periksa kredensial Anda
Masalah yang sama. Kredensial diperiksa tetapi masalah tetap ada. Ada pemikiran lain? Terima kasih!
Saya akhirnya menggunakan OAuth2Session untuk mendapatkan otentikasi oauth2 dan mengambil data dari grafik api. sudah lama dan saya tidak lagi ingat detail persisnya.
Terima kasih akan memeriksanya.
Hai, saya memiliki masalah yang sama, tetapi dalam kasus saya, saya pikir itu karena saya memiliki sharepoint yang dikonfigurasi dengan metode FormAuthentication. Tidak mungkin itu akan berhasil sampai penyedia token yang tepat diimplementasikan
Saya juga mengalami masalah ini, tetapi hanya jika saya menggunakan akun Outlook.com. Saya berharap seseorang dapat menjelaskan apa yang terjadi di balik layar dan mungkin menawarkan solusi. Berikut penjelasan singkatnya:
1) Situs SharePoint kami ada di cloud (https://mn365.sharepoint.com)
2) Ketika saya membuat koneksi ke situs menggunakan kredensial State of Minnesota saya, itu terhubung dengan baik.
3) Tetapi karena saya tidak ingin memiliki kredensial saya sendiri yang disematkan di aplikasi saya, saya membuat "akun layanan" di sepanjang baris " [email protected] ". Akun ini gagal.
Apa perbedaan dalam otentikasi antara menggunakan alamat outlook.com dan yang dikeluarkan oleh organisasi saya (dalam hal ini firstName. [email protected]?
Masalah yang sama disini. Kami menggunakan AD FS untuk otentikasi. Sampai sekarang saya tidak menemukan cara untuk mendapatkan informasi apapun dari server online sharepoint kami. Saya mencoba banyak perpustakaan tetapi tidak ada yang berhasil untuk saya.
Saya memiliki kesalahan yang sama karena sharepoint dialihkan untuk otentikasi ke STS/ADFS lokal.
Kami membuat pengguna O365 baru secara langsung di O365 sehingga tidak menggunakan pengalihan ke STS/ADFS lokal. Ini menyelesaikan kesalahan 👍
Saya beralih ke sharepy, yang menjalankan ootb dan mencakup kondisi saya
Sama disini:
Tidak ada penangan yang dapat ditemukan untuk logger "office365.runtime.auth.saml_token_provider.SamlTokenProvider._process_service_token_response"
Adakah keberuntungan dari orang lain?
Mungkin yang berikut ini membantu mempersempitnya lebih jauh.
Saya dapat berhasil mengautentikasi pada URL sharepoint umum, tetapi tidak pada URL yang menunjuk ke saluran tim tertentu. Sedikit kode berikut berfungsi dengan baik:
url = "https://COMPANYNAME.sharepoint.com/"
username=raw_input("username: ")
password=raw_input("password: ")
ctx_auth = AuthenticationContext(url=url)
if ctx_auth.acquire_token_for_user(username=username, password=password):
Tetapi ketika saya mengganti URL dengan:
url = "https://COMPANYNAME.sharepoint.com/sites/TEAMSCHANNEL/"
maka saya mendapatkan kesalahan berikut ::
No handlers could be found for logger "office365.runtime.auth.saml_token_provider.SamlTokenProvider.acquire_authentication_cookie"
Solusi apa pun dihargai - di browser saya, saya dapat melihat keduanya dengan baik.
Kami menemukan solusi untuk kasus penggunaan di atas. Cukup gunakan url dasar untuk mendapatkan AuthenticationContext
. Objek ClientContext
dapat dibuat menggunakan url yang berbeda.
base_url = "https://COMPANYNAME.sharepoint.com/"
ctx_auth = AuthenticationContext(url=base_url)
if not ctx_auth.acquire_token_for_user(username=user, password=password):
sys.exit('Error in getting token - quitting')
url = base_url + "sites/TEAMSCHANNEL/"
ctx = ClientContext(url, ctx_auth)
..
..
Hai teman-teman!
Sejak saat masalah ini dilaporkan hingga sekarang, peningkatan/perbaikan bug berikut telah dilakukan dalam hal _dukungan untuk autentikasi gabungan berbasis SAML dengan SharePoint Online_:
Jadi, kesalahan yang diberikan seharusnya tidak lagi terjadi, pastikan untuk mengambil versi _terbaru_ ( 2.1.10.1
atau lebih tinggi).
Komentar yang paling membantu
Saya memiliki masalah serupa karena instance SharePoint kami berjalan di belakang proxy. Saya harus mensubklasifikasikan
SamlTokenProvider
untuk mengganti url login (self.sts
) dan nama cookie. Saya pikir masalahnya adalah selama inisialisasi, kode tidak memeriksa hasilacquire_authentication_cookie
jadi jika otentikasi gagal, Anda tidak akan mendengarnya sampai cookie digunakan.