Office365-rest-python-client: Tidak dapat menggunakannya untuk Python 3

Dibuat pada 4 Jul 2017  ·  24Komentar  ·  Sumber: vgrem/Office365-REST-Python-Client

Apakah ada masalah dengan python 3?

bug enhancement

Komentar yang paling membantu

@vic-by Komit baru-baru ini memperbaiki masalah: https://github.com/vgrem/Office365-REST-Python-Client/commit/90731f
Perhatikan bahwa saat ini, komit ini belum didorong di pypi. Jadi jika Anda melakukan pip install Office365-REST-Python-Client Anda tidak akan mendapatkan kode itu. Menginstal dari git akan : pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git

Semua 24 komentar

Halo,

itu harus kompatibel dengan kedua versi Python: 2 dan 3, tetapi izinkan saya memverifikasinya. Akan kembali kepada Anda.

Hai Terima kasih atas balasan secepatnya.
Di bawah ini adalah kesalahan yang saya dapatkan
`------------------------------------------------- --------------------------
ModuleNotFoundError Traceback (panggilan terakhir terakhir)
di dalam()
1 impor json
2
----> 3 dari office365.runtime.auth.authentication_context impor AuthenticationContext
4 dari office365.runtime.client_request impor ClientRequest
5 dari office365.runtime.utilities.request_options impor RequestOptions

ModuleNotFoundError: Tidak ada modul bernama 'office365'`

Dan Ya, saya sudah menginstal modul pip :)

Hai, Saya telah menulis kode untuk mendapatkan informasi hanya dengan menggunakan modul Permintaan. dan saya bisa mendapatkan cookie FedAuth dan rtFa dengan sukses. Namun, itu menimbulkan kesalahan Terlarang ketika saya mencoba mendapatkan siteUsers.
Bisakah Anda membantu dalam hal ini?
`permintaan impor

url=" https://login.microsoftonline.com/extSTS.srf "
header = {'tipe konten': 'aplikasi/json'}
TopLevelUrl=' https://XXXX.sharepoint.com '
path='C:\PSR\PythonFiles\SharePointOnlineXML.txt'

isi file = buka(jalan,'r')
SharepointOnlineAuth = filecontent.read()
SharepointOnlineAuth=SharepointOnlineAuth.format('[email protected]','Password',TopLevelUrl)

Mari menelepon untuk mendapatkan Token untuk mendapatkan cookie

response=requests.post(url,data=SharepointOnlineAuth,headers=headers)
s=str(respon.konten)
Mulai = [pos untuk pos dalam range(len(s)) if s[pos:].startswith('')][0]
Finish= [pos untuk pos dalam range(len(s)) if s[pos:].startswith('
')][0]
LoginResponse=s[Mulai+40:Selesai]

Sekarang, Mari ambil cookie untuk melakukan Panggilan ke SharePoint Online

url=TopLevelUrl+'/_forms/default.aspx?wa=wsignin1.0'
header = {'tipe konten': 'application/x-www-form-urlencoded'}
response=requests.post(url,data=LoginResponse,headers=header)

Memanggil Sharepoint REST Api menggunakan cookie yang diperoleh dari Panggilan di atas

url=TopLevelUrl+'/_api/web/pengguna situs'
cetak (url)
_Fedauth='FedAuth={}'.format(response.cookies['FedAuth'])
_rtFa='rtFa={}'.format(response.cookies['rtFa'])
_FinalDict={'Cookie':_Fedauth+','+_rtFa}

headers = {'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/59.0.3071.115 Safari/537.36'}
headers.update(_FinalDict)

cetak (tajuk)

response=requests.get(url,headers=header)
cetak (tanggapan)`

mendapatkan kesalahan pada python3.4:

_Traceback (panggilan terakhir terakhir):
File "auth_sharepoint_online365.py", baris 2, di
dari office365.runtime.auth.authentication_context impor AuthenticationContext
File "authentication_context.py", baris 2, di
dari office365.runtime.auth.saml_token_provider impor SamlTokenProvider
File "saml_token_provider.py", baris 2, di
impor urlparse
ImportError: Tidak ada modul bernama ' urlparse '_

Menurut https://docs.python.org/2/library/urlparse.html :

Modul urlparse diubah namanya menjadi urllib.parse dengan Python 3.

Coba ini https://github.com/parthrawal/Python.O365 Saya telah menulis file .py yang dapat terhubung ke SharePoint Online dan bahkan memiliki beberapa metode untuk mendapatkan data dari daftar dalam format kamus. Beri tahu saya jika Anda memerlukan bantuan untuk itu.

@vic-by Komit baru-baru ini memperbaiki masalah: https://github.com/vgrem/Office365-REST-Python-Client/commit/90731f
Perhatikan bahwa saat ini, komit ini belum didorong di pypi. Jadi jika Anda melakukan pip install Office365-REST-Python-Client Anda tidak akan mendapatkan kode itu. Menginstal dari git akan : pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git

Masih ada pekerjaan yang diperlukan untuk benar-benar mendapatkan perpustakaan dengan python 3.

Saya mengalami masalah penyandian ketika menjalankan perpustakaan di bawah python 3. Itu terjadi ketika melakukan list.properties tapi saya yakin masalahnya perpasif.

    ctx = ClientContext(url, ctx_auth)
    web = ctx.web
    ctx.load(web)
    ctx.execute_query()
    lists = web.lists
    ctx.load(lists)
    ctx.execute_query()
    lists[0].properties
 in <module>()
---> 16         lists[0].properties

c:\python\python35\lib\encodings\cp850.py in encode(self, input, final)
     17 class IncrementalEncoder(codecs.IncrementalEncoder):
     18     def encode(self, input, final=False):
---> 19         return codecs.charmap_encode(input,self.errors,encoding_map)[0]
     20
     21 class IncrementalDecoder(codecs.IncrementalDecoder):

UnicodeEncodeError: 'charmap' codec can't encode character '\u2019' in position 11052: character maps to <undefined>

Saya mengalami masalah yang sama dengan Python 3: "ModuleNotFoundError: Tidak ada modul bernama 'urlparse'"
Menguji file SharePointOnline.py: Kegagalan Otentikasi -> Kata sandi yang dimasukkan dan disimpan tidak cocok.

Apakah Anda mencoba tautan ini https://github.com/parthrawal/Python.O365 pastikan Anda menggunakan akun layanan untuk hal yang sama

Ya. Salin / Tempel kode, di bagian bawah:

if __name__ == "__main__":
    UserName = "[email protected]"
    # UserName = "[email protected]"
    Password = "my_password"
    TopLevelUrl = "https://company.sharepoint.com/"
    SPOnlineHeaders(UserName, Password, TopLevelUrl)

Kesalahan berikut dikembalikan:

....
IndexError: list index out of range

Untuk mendapatkan detail lebih lanjut tentang kesalahan, saya telah memasukkan, pada SPOnlineHeaders, kode berikut (cetak):

response = requests.post(url, data=SharepointOnlineAuth, headers=headers)
s = str(response.content)
print(s)

Tanggapan:
... wst:FailedAuthentication...Kata sandi yang dimasukkan dan disimpan tidak cocok...

Saya harap yang Anda gunakan adalah akun layanan

Itu betul. Saya menggunakan akun layanan.

Apakah kata sandi benar? bisa tolong dicek ulang. karena saya mencoba menjalankan kode, itu berfungsi dengan baik. Tetapi ketika saya memasukkan kata sandi yang salah, itu memunculkan kesalahan "IndexError: daftar indeks di luar jangkauan".

Ya. Kata sandinya benar. Inilah yang terjadi ketika melakukan login secara manual.

Saya menulis tautan ke browser: https://company.sharepoint.com/

Saat menekan enter saya diarahkan ke halaman login: https://login.microsoftonline.com/575...71a/oauth2/authorize?client_id=...&response_mode=form_post&response_type=code%20id_token&resource=...&scope=openid&nonce =....&redirect_uri=https :%2F%2Fcompany.sharepoint.com%2F_forms%2Fdefault.aspx&wsucxt=1&client-request-id=....

Setelah menekan tombol ok di halaman login saya melihat dua tautan cepat ...
Pertama: https://sts.company.com/adfs/ls/wia?client-request-id=...&wa=wsignin1.0&wtrealm=urn%3afederation%3aMicrosoftOnline&wctx=LoginOptions%3D3%26estsredirect%3d2%26estsrequest%. ...&cbcxt=&namapengguna=myemail%perusahaan.com&mkt=&lc=
... Dan ...
Kedua: https://login.microsoftonline.com/login.srf?client-request-id=...

Dan akhirnya berhenti di halaman yang diperlukan:
https://perusahaan.sharepoint.com/

Saya menjalankan kode ini menemukan bahwa itu melempar kesalahan 403 di suatu tempat dalam kode.

respon = request.post(url,data=SharepointOnlineAuth,headers=header)
s = str(respon.konten)
cetak
"b'403 DILARANG'"

Saya lupa menggunakan titik akhir

url=" https://login.microsoftonline.com/extSTS.srf "

urlpar

Saya mengalami masalah yang sama dengan urlparse (Python 3.6.5 :: Anaconda, Inc.). Ini diselesaikan dengan memodifikasi saml_token_provider.py: from urllib.parse import urlparse [...] url = urlparse(self.url)

Kemudian saya kehilangan web, yang saya instal dengan: pip install lpthw.web . Namun, sepertinya ada masalah, karena sekarang saya mendapatkan masalah berikut:
from web import Web File "C:\ProgramData\Anaconda3\lib\site-packages\web\__init__.py", line 14, in <module> import utils, db, net, wsgi, http, webapi, httpserver, debugerror ModuleNotFoundError: No module named 'utils'

Instal modul utils di anaconda.

Instal modul utils di anaconda.

Terima kasih. Setelah menginstal utils, saya juga perlu menginstal db...mungkin berguna untuk memiliki cek requirements.txt di dalam paket?

Apa yang terjadi sekarang adalah bahwa pernyataan cetak tidak memadai untuk python3:
print "var", var ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("var", var)?

Silahkan melalui link berikut:
https://docs.python.org/3.0/whatsnew/3.0.html

@viogp Terima kasih telah memposting kemajuan Anda di sini, akan lebih baik jika kami dapat mengatasi beberapa masalah ini. Saat ini menggunakan perpustakaan ini di py 2.7 dan ingin alur kerja ini ke py 3.

Hai. Saya punya masalah menggunakan perpustakaan ini.
Terjadi kesalahan saat mengambil token: AADTS90023: Permintaan STS tidak valid.
Terjadi kesalahan saat mengambil cookie auth
return 'FedAuth=' + self.FedAuth + '; rtFa=' + self.rtFa
TypeError: hanya dapat menggabungkan str (bukan "NoneType") ke str
Ada yang bisa membantu saya?

Karena perpustakaan secara resmi kompatibel dengan runtime Python 2 dan Python 3, usulkan untuk menutup masalah ini.

Hai,

Saya mendapatkan kesalahan ini "ModuleNotFoundError: Tidak ada modul bernama 'office365.sharepoint.client_context'" ketika saya menggunakan lingkungan proyek di pycharm selama menjalankan. TAPI itu akan berfungsi dengan baik jika saya menggunakan lingkungan sistem Python. Perilaku yang sama baik saya menggunakan Python 3.6 atau 3.7.

Tolong bantu!
Terima kasih.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat