あなたのJavaコードは、Microsoft Exchange Serverを使用してメールを送信する必要があります。または、Javaを使用してMicrosoft Exchange Serverから電子メールを読み取る必要があります。あるいは、あなたが興味を持っているのはカレンダーで、そこから情報を取得しようとしたり、異なるカレンダーを同期しようとしたりしているのかもしれません。JavaでMicrosoft Exchange Calendar APIを使ってどのように作業するのでしょうか?
あらゆる種類のソフトウェアと統合する古典的な方法は、その API を使用することです。ですから、もしあなたがMicrosoft Exchangeと統合しようとしているのであれば、おそらくExchangeのAPIの使い方を見つけようとしているはずです。
APIは時代とともに変化する - Microsoft Exchange APIの歴史を振り返る
JavaからExchangeに統合する方法としては、これまではExchange Web Services(EWS)が主流でしたが、このEWS SDK for は、Microsoft Exchange 2007の一環として提供されました。EWS SDK for Java は、2007年にMicrosoft Exchangeの一部として発売されました。SOAPベースのAPIなのですが、問題は2018年7月にMicrosoftが機能アップデートを行わなくなると発表したことです。EWS SDK for Java willはしばらくの間セキュリティアップデートを受け続けますが、今のところそれを使用してプロジェクトを開始することは意味がありません。
もう一つの重要な変更点は、2020年10月13日からExchange Web Services (EWS)での基本認証のサポートが完全に停止されることです。マイクロソフトはすべてをOAuthに移行することを望んでいます。OAuthは実際にははるかに優れたオプションであり、国際標準(ISO/IEC)として承認されています。OAuthを聞いたことがない場合は、以下をチェックしてみてください。 此処 そしてさらに深く 此処.そして、これは良い方向への動きではありますが、基本認証のサポートが終了すると、アプリがEWSを使用してExchangeに接続する際に基本認証を使用できなくなるという事実があります。
で、どうするの?
JavaからAPI経由でMicrosoft Exchangeに接続したい場合で、Microsoftの推奨に従いたい場合は、Microsoft Graphを使用してください。
Microsoft Graphは2015年にOffice 365の上に構築され、1つのエンドポイント を介して異なるOffice 365クラウドサービスへの呼び出しをデリゲートします。https://graph.microsoft.com/.それは今ではExchangeのような他のMicrosoft製品へのアクセスを含むように時間をかけて進化してきました。
Microsoft Graph内では、Microsoft Graph APIまたはMicrosoft Graph data connectを使用することができます。いずれの方法でも、まず最初に ご利用条件.Microsoftは、APIでできることとできないことについてかなり具体的に説明していますので、見てみてください。
ほとんどのケースでは、Microsoft Graph APIがお勧めです。以下、もう少し詳しく見ていきましょう。
ビッグデータを扱う必要がある場合や、きめ細かな同意が必要な場合には、Microsoft Graph data connectを検討する必要があります(通常のAPIでは不可能な、特定のフィールドや除外項目をお客様が確認することができます)。しかし、Microsoft Graph data connectを検討する場合には、注意しなければならない重要なルールがあります。それは、お客様のOffice 365テナントから、関連するAzureテナントにしかデータを送信しないということです。
最も一般的な選択肢であるため、通常のAPIに戻ってみましょう。Microsoft Graph REST APIには、現在ベータ版とv1.0の2つのバージョンがあります。を見てみるといいでしょう。 ベータ版しかし、もちろん、本格的な開発には製品版 1.0 に固執する必要があります。そのバージョンについては 文書化 そして、その ジャバSDK.そう、もしあなたがこのAPIを始めようとしているのであれば、たくさんの勉強が必要です!...。
APIを利用するには、まず自分のアプリケーションを登録する必要があります。これはあまりエキサイティングな第一歩ではありませんが、APIを直接使用する場合、APIコールでアプリケーションを表現するためのアプリケーションIDが必要になります。このためには、会社や学校のアカウント、またはMicrosoftアカウントが必要になります。
- マイクロソフトアプリケーション登録ポータル
- Azure Active Directory管理ポータル(エンタープライズクラスのアプリケーションに推奨)
アプリケーションが機密性の高いクライアント(サービス)である場合、それを保護するために新しいアプリのパスワードを作成する必要があります。登録が完了すると、アプリケーション用のIDが作成され、新しいアプリのプロパティページに表示されます。
最後に、Microsoft Graphも常に変化していることに注意してください。経年変化(2015年12月以降)を把握するには チェンジログ.これを使って作業したい場合は、API の現在のプロダクションバージョンが何であるかを常に確認することをお勧めします。
もっと良い方法はないのか?
あまり興味のない方は
- そもそもマイクロソフトとの連携
- ドキュメントを勉強するのに膨大な時間を費やすこと
- Microsoft Graph APIの将来的な変更によるエラーを我慢すること
何か代替案はないかと悩んでいるかもしれません。そう、もっと良い方法があるのです!
APIを直接使用する代わりに、自分とAPIの間に薄いレイヤーを置くことができます。私たちはこのレイヤーを Connect Bridge と呼んでいます。このレイヤーは、すべてのものが高速で効率的に動作するように十分に薄く作られていますが、Microsoft ExchangeやMicrosoft Graph APIには決して触れないように十分に厚く作られています。
Connect Bridgeは有料ツールですが Connect Bridge無料トライアル 利用可能なので、それがあなたのために動作するかどうかを確認することができます。このツールの優れた点は、前方と後方の互換性を保証することです。
Connect Bridgeと統合したJavaコードを構築すれば、ユーザーがExchangeにアップグレードしても、MicrosoftがAPIの新バージョンを発表しても......気にする必要はありません。Microsoft Graph API v1.0の後に何が来るかは問題ではありません。あなたのソリューションはそのまま使えます。一度コードを書けば、あとは複雑なことを気にする必要はありません。
本ツールの使用環境に制限はありません。以下の環境で実行することができます。
- コネクティングソフトウェアが管理するAzureで構築されたSaaSプラットフォーム
- オンプレミス、または自社のクラウドサーバーや仮想マシン(セルフホスト型
Connect Bridgeの仕組みは?裏では何をしているのでしょうか?基本的には標準SQL文をAPI呼び出しに変換します。コード上では、JDBC(ODBCやWebサービスもサポートされています)を使用してリレーショナルデータベースにアクセスしているように見えます。SELECT、INSERT、UPDATE、DELETE文を書いています。ストアドプロシージャのようなものを使用しています。しかし、それはすべて抽象化されたレイヤーにすぎません。
あなたはMicrosoft Exchangeのデータベースにアクセスしているわけではありません(信じてください、そんなことはしたくありません!)。しかし、あたかもそうであるかのように見えます。Connect Bridgeにはクエリツールが付属しており、(偽の)クエリをテストしたり、(偽の)列を持つ(偽の)テーブルを見たり、便利な(偽の)ストアドプロシージャを見つけたりすることができます。先ほど言ったように、まるでSQLデータベースを使っているかのように感じられますが、それは単なる抽象的なものです。
必要なテストをすべて行った後は、JDBCを使ってデータベースに接続するのと同じように、接続とクエリをコードに記述するだけ......。これで、メンテナンスが不要なソリューションが完成しました。メンテナンスの手間はすべてConnect Bridge側で行います。これが、このツールが有料である理由です。これは非常に賢いアイデアだと思います...お金を払う価値があります
また、このツールはセキュリティや認証にも対応しているので、一から開発しているとかなりの時間がかかってしまうのも良い点です。
結論
JavaでMicrosoft Exchangeのデータにアクセスする方法を見てきましたが、Connect Bridgeの統合プラットフォームを使って簡単にできるようになっています。
さらに良いニュースがあります:これはMicrosoft DynamicsとMicrosoft SharePointでも可能です。実際のところ、MicrosoftのソフトウェアやSalesforce、その他多くのソフトウェアに接続することができます。基本的な統合プラットフォームであるConnect Bridgeを入手し、適切なコネクタを選択する必要があります。
Connect Bridgeで現在販売されているコネクタを知りたい場合は、以下を参照してください。 https://www.connecting-software.com/connectors/
この膨大なコレクションの中で、どれが最新のコネクタなのかを知りたい場合は、Connect Bridgesをご覧ください。 Dynamics 365 ファイナンス&オペレーション そして Dynamics 365 ビジネスセントラル コネクタを使用しています。
また、Connect Bridgeを使用した既製品や、完全にアウトオブボックスのソリューションがあることを知っておくことも重要です。例えば CB Exchange Server Sync カレンダー、電子メールフォルダ、タスク、連絡先、パブリックフォルダの一方向または双方向の同期をカスタムで選択することができます。
この記事がお役に立てれば幸いですここでは、他の統合の可能性について議論しているブログの記事をいくつか紹介します。