أهلا بك،
أنا أعمل مع الإصدار 2.1.7.post1 (وفقًا لتجميد النقطة) ، لا يلزم استخدام MFA لتسجيل الدخول إلى sharepoint.
أحاول حاليًا الحصول على ملف Excel من نقطة مشاركة الشركة ، باستخدام البرنامج النصي التالي (تم إنشاؤه من README الخاص بالمشروع):
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File
url = 'https://mycompany.sharepoint.com/sites/documentssite/'
ctx_auth = AuthenticationContext(url)
if ctx_auth.acquire_token_for_user(username, password):
ctx = ClientContext(url, ctx_auth)
web = ctx.web
ctx.load(web)
ctx.execute_query()
print("Web title: {0}".format(web.properties['Title']))
يوفر تشغيل هذا البرنامج النصي الإخراج التالي:
An error occurred while retrieving auth cookies from https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc
لاحظت من خلال تشغيل هذا البرنامج النصي في وضع التصحيح ، أن المشكلة تأتي من الطريقة acquire_authentication_cookie
للفئة SamlTokenProvider
في الواقع ، يتم استدعاء الطريقة بـ federated=True
لذلك يتم تنفيذ طلب HTTP على https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc باستخدام طريقة HEAD. يمكنك أن تجد أدناه الجزء الذي فشل فيه:
def acquire_authentication_cookie(self, security_token, federated=False):
...
else:
self._auth_cookies['SPOIDCRL'] = None
session.head(self.__sts_profile.signInPageUrl,
headers={
'User-Agent': 'Office365 Python Client',
'X-IDCRL_ACCEPTED': 't',
'Authorization': 'BPOSIDCRL {0}'.format(security_token),
'Content-Type': 'application/x-www-form-urlencoded'
})
logger.debug_secrets("session.cookies: %s", session.cookies)
cookies = requests.utils.dict_from_cookiejar(session.cookies)
logger.debug_secrets("cookies: %s", cookies)
if not cookies:
self.error = "An error occurred while retrieving auth cookies from {0}".format(self.__sts_profile.signInPageUrl)
logger.error(self.error)
return False
الرد لا يحتوي على أي ملف تعريف ارتباط ، وهذا هو سبب ظهور رسالة الخطأ.
بالمناسبة ، واجهت نفس المشكلة عندما قمت بتعيين عنوان url على " https://mycompany.sharepoint.com ".
يُرجى إعلامي إذا لم أقدم تفاصيل كافية حول المشكلة.
شكرا لكم مقدما !
بعض الأخبار حول هذه القضية:
عندما أقدم طلب HEAD إلى https://mycompany.sharepoint.com/sites/documentssite//_vti_bin/idcrl.svc باستخدام curl ، تمت إعادة توجيهي إلى https://mycompany.sharepoint.com/_vti_bin/idcrl.svc/ (كود الاستجابة: 307).
لذلك قدمت طلب HEAD على هذا الرابط ، وتلقيت استجابة "طريقة غير مسموح بها" ...
أعتقد أن المشكلة تأتي من جانب شركتي ..
تحيات!
شكرا لك على التفاصيل المقدمة!
2.1.7.post1
قديم بعض الشيء في الوقت الحالي ، هل يمكنك إعطائه لقطة أخرى ولكن مع الإصدار _ الأحدث ( 2.1.10.1
في الوقت الحالي) ، يمكن تنزيله عبر GitHub:
pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git
أو من فهرس بديل
تم حل بعض إصلاحات الأخطاء منذ ذلك الحين من حيث المصادقة.
لقد قمت بتثبيت الإصدار الأخير وهو يعمل بشكل جيد! (كان هذا الأمر بسيطًا جدًا لحلها في الواقع! :))
شكرا على المساعدة: د