私は現在、exchangeelibを使用してOffice365 EWSに接続しています。私の現在のシナリオは、会議室のカレンダーにアクセスしたいということです。 Outlook内から「部屋を追加」オプションをクリックすると、カレンダーが表示されます。また、カレンダービューの[その他のカレンダー]セクションに追加すると表示されます。exchangeelibの "その他のカレンダー"へのアクセス
私はカレンダーをチェックし、アカウントとして会議室の電子メールアドレスを使用しようとすると、私は次のエラーを取得する:
exchangelib.errors.ErrorFolderNotFound: No useable default Calendar folders
だから、私はちょうど私を経由してカレンダーにアクセスすることを考え出し代わりにログインしてください。 Outlookの[その他のカレンダー]セクションを表示しているかのように表示されます。問題は、これらのカレンダーにアクセスする方法を理解できないように思えることです。私は問題なしで私自身にアクセスすることができます。
EWS用のC#実装を見てみると、フォルダを検索する方法があり、その場所に他のカレンダーがあります。私はこのようなものはexchangeelibに見ません。
例を与える:
credentials = Credentials(username='My email address', password='My password')
config = Configuration(credentials=credentials, server='outlook.office365.com', has_ssl=True)
email = # My e-mail address (I also attempted with the room's e-mail address)
account = Account(primary_smtp_address=email, credentials=credentials,
autodiscover=False, config=config)
for f in account.folders:
print f
結果:
<class 'exchangelib.folders.Calendar'>
<class 'exchangelib.folders.Contacts'>
<class 'exchangelib.folders.Tasks'>
<class 'exchangelib.folders.Messages'>
<class 'exchangelib.folders.Folder'>
'カレンダー' オプションを繰り返すことはできませんが、 'フォルダ' オプションのことが可能に。
for f in account.folders[Folder]:
print f
結果:
Folder (Conversation Action Settings)
Folder (Conversation History)
Folder (Files)
Folder (Journal)
Folder (Notes)
Folder (Quick Step Settings)
Folder (RSS Feeds)
Folder (Social Activity Notifications)
Folder (Yammer Root)
これらのオプションのどれも私が探しているものを私に与えているように見えるん。
ご協力いただければ幸いです!
は、事前に、私はaccount.root.get_folders()
の魔法を発見した
EDIT
、ありがとうございました。私は今、非常に大きなフォルダのリストを見ることができます。しかし、私はまだ他のカレンダーに使用できるように見えるものはありません。私はC#で他の人が使用しているソリューションについて読み、このスレッドに出くわしてきた
:
EWS - Access All Shared Calendars
彼らが検索フィルタのいくつかの並べ替えを持っているように見えますが、私は見つけられませんよそれはexchangelib
図書館内にあります。
その後、私は別のスレッドが見つかりました:
この1つは他のカレンダーは、カレンダーオブジェクトの下のフォルダであるかについて話しました。しかし、私がaccount.calendar.get_folders()
を照会すると、0の結果が戻ってきます。