0

Я просто пытаюсь получить доступ к веб-службам Exchange (EWS) 2010 с помощью Python, используя специальную вилку Alex Shess от Alex Koshelev (можно найти на BitBucket). Я нашел базовый код для доступа к EWS here, и он работает нормально до сих пор. Однако, когда я пытаюсь реализовать другие операции, требующие атрибутов (например, операцию FindFolder), он терпит неудачу.Python suds.TypeNotFound на Exchange EWS 2010

Вот код, я использую:

import urllib2  

from suds.client import Client 
from suds.sax.element import Element 
from suds.transport.https import HttpTransport 

class Transport(HttpTransport): 
    def __init__(self, **kwargs): 
     realm, uri = kwargs.pop('realm'), kwargs.pop('uri') 
     HttpTransport.__init__(self, **kwargs) 
     self.handler = urllib2.HTTPBasicAuthHandler() 
     self.handler.add_password(realm=realm, 
            user=self.options.username, 
            passwd=self.options.password, 
            uri=uri) 
     self.urlopener = urllib2.build_opener(self.handler) 

transport = Transport(realm='owa10.123together.com', 
         uri='https://owa10.123together.com', 
         username='[email protected]', 
         password='demo123!') 
client = Client("https://owa10.123together.com/EWS/Services.wsdl", 
       transport=transport) 

ns = ('t', 'http://schemas.microsoft.com/exchange/services/2006/types') 

soap_headers = Element('RequestServerVersion', ns=ns) 
soap_headers.attributes.append('Version="Exchange2010_SP1"') 
client.set_options(soapheaders=soap_headers) 

address = client.factory.create('t:EmailAddress') 
address.Address = '[email protected]' 

traversal = client.factory.create('t:FolderQueryTraversalType') 
#traversal.Traversal = 'Deep' 

#print client.service.GetUserOofSettings(address) 
test = client.service.FindFolder(traversal) 
print test 

Когда я запускаю этот код я получаю следующее сообщение об ошибке:

suds.TypeNotFound: Type not found: 'Shallow' 

Я также использовал регистратор для того, чтобы выяснить проблему и это показывает мне следующее:

DEBUG:suds.mx.literal:starting content: 
(Content){ 
    tag = "Shallow" 
    value = "Shallow" 
    type = None 
} 

Кто-нибудь знает здесь, где проблема? Это мой кусок кода или файл .wsdl не нормально? Обратите внимание, что я нахожусь кровавым в Python и особенно пеной. Если вам нужна дополнительная информация или код, просто скажите мне.

спасибо, что заблаговременно!

ответ