Кто-нибудь смог заставить Python работать с Exchange Web Services? - PullRequest
2 голосов
/ 20 ноября 2011

Я пытаюсь вызвать некоторые методы, такие как UpdateItem, но они не увенчались успехом. Я продолжаю получать следующую ошибку:

Исключение: импортированная схема (http://www.w3.org/XML/1998/namespace) в (http://www) .w3.org / 2001 / xml.xsd), ошибка

Если бы кто-то мог опубликовать какой-нибудь рабочий код, который создает клиент и успешно вызывает метод, я был бы очень признателен. Спасибо. Я где-то читал, что загрузка файла схемы локально на мой компьютер может помочь, но я не уверен, как реализовать это в моем коде. Вот что у меня есть:

import urllib2
import suds
import logging
from suds import WebFault
from suds.client import Client
from suds.client import Factory
from suds.transport.http import HttpAuthenticated
from logging import getLogger
logging.getLogger('suds.client').setLevel(logging.CRITICAL)
from suds.xsd.doctor import ImportDoctor, Import

# cannot access schema through browser
imp = Import('http://schemas.microsoft.com/exchange/services/2006/messages')
d = ImportDoctor(imp)
client = Client('http:path to wsdl', doctor = d, username='my_username',       
password='my_password')
retVal = client.service.GetServerTimeZones()
print retVal

Ответы [ 2 ]

0 голосов
/ 19 апреля 2012

Вопрос немного староват, но для людей, которые приходят сюда в поисках альтернатив, есть новая оболочка, которую вы можете попробовать использовать suds - EWSWrapper_py , реализация на EWS Wrapper на python. Он в основном ориентирован на календарь обмена, но дает хорошую основу для дальнейшего развития. Источник размещен на GIT.

С первого взгляда, текущие функции включают в себя:

  • Операции с календарными событиями:
    • добавить,
    • обновление,
    • удалить,
    • список
    • 1019 * синхронизирующий *
  • Операции над задачами:
    • добавить
    • обновление,
    • удалить,
    • список
  • Операции с папками:
    • список
    • синхронизация * +1039 *
0 голосов
/ 30 марта 2012

Рекомендуется использовать suds-ews . Также вам нужно будет реализовать аутентификацию ntlm.

...