私は本質的には、ユーザーことができますプラットフォーム構築しました:のMicrosoft Exchange/Outlookとマルチカレンダー・ソリューションを統合
- 会社のプロファイルを作成し、同僚を招待するために、
- が床にオフィスを作成しますプラン、
- 会議室ごとに個別のカレンダーを持つフロアプランにテーブルと会議室を追加する
- 会議室のブックテーブルと会議。
プラットフォームはPython/Djangoで構築されています。
今、Office 365およびローカルExchangeディストリビューションで動作する同期メカニズムを実装しようとしています。同期は双方向です。つまり、Outlookで作成されたイベントは、Googleシステムで作成される予定のイベントをトリガし、その逆も同様です。
最初の試みでは、EWS SOAP API(exchangelib
)を使用しました。しかし、すぐに私はOutlookのイベントのトリガーを作成する方法を考え出すときに問題に遭遇しました。これは失敗に終わりました。同期には、アカウントの反復処理やカレンダーの変更があるかどうかの確認など、遅いAPI呼び出しの絶え間ない爆発があります。
2番目の試みは、ポーリングを解決するこのきちんとしたプッシュ通知機能を持つMicrosoft Graph APIを使用していました(または私は考えました)。しかし、後で分かったように、管理者に特権のあるExchangeアカウントをリンクさせ、関連するすべてのアカウントのイベント変更を一度に購読できるようにすることはできませんでした(thanks to this article)。だから、これもまた、ポーリング(またはすべての人に自分の個人アカウントをリンクさせること)を行う唯一の方法であるという認識につながります。
Exchangeとの双方向同期を実現するには、管理者にアカウントを少しオーバーヘッドとポーリングをできるだけ行うようにすることをお勧めしますか?
似たような大規模アプリケーションを開発した人はいますか?もしそうなら、正しい方向に私を押し込めますか?