対象: 新Office365 Office 365 Enterprise, Office 365 Small Business, Office 365 Midsize Business
(この記事は 2014 年 5 月 12 日に Office Blogs に投稿された記事 .NET and JavaScript libraries for Office 365 APIsの翻訳です。最新情報については、翻訳元の記事をご参照ください。)
今回は、Visual Studio 担当プログラム マネージャーの Chakkaradeep Chandran とSaurabh Bhatia が執筆した記事をご紹介します。
Office 365 API に、.NET および JavaScript でライブラリを使用してアクセスできるようになりました。これらのライブラリを使用すると、ユーザーはお好みのデバイスやプラットフォームから簡単に REST API を操作できます。このライブラリは、Office 365 API Tools for Visual Studio プレビュー (英語)の最新版に含まれています。このリリースでは、ライブラリと共にツールのエクスペリエンスにも重要な更新が実施されており、Office 365 サービスとのやり取りの簡素化に貢献しています。
クライアント ライブラリ
開発者は、Office 365 で提供されている REST ベースの API を使用して、予定表、連絡先、電子メール、ファイルなどの Office のリソースにアクセスできます。REST API が Office 365 とのやり取りを行うように直接プログラムを作成することもできますが、この場合、認証トークンにかかわるコードの作成と保守、アクセス先 API の URL やクエリの適切な構築、およびその他のタスクを開発者が行う必要があります。しかし、クライアント ライブラリを使用して Office 365 API にアクセスする場合に必要とされるコードは、従来の方法で API にアクセスする場合のコードよりもシンプルです。マイクロソフトでは、このライブラリを発表されたばかりのマルチデバイス ハイブリッド アプリケーション (英語)で .NET および JavaScript の開発者向けに提供しています。
このクライアント ライブラリでは、次のことが可能です。
- 認証と検出の実行
- Mail, Calendar and Contacts API の使用
- My Files and Sites API の使用 (現時点では .NET のみ、JavaScript も近日中にサポートの予定)
- Users and Groups API の使用
これらのライブラリを使用することで Office 365 API へのアクセスがどれほど簡単になるか、例を挙げて説明します。
認証を実行し、Office 365 の予定表から今後のイベントを取得する .NET C# のコード:
// 認証用 UI を表示
Authenticator = newAuthenticator();
AuthenticationInfo result = await authenticator.AuthenticateAsync("https://outlook.office365.com");
AuthenticateAsync メソッドは、ユーザー名とパスワードの入力画面を表示し、特定のリソースの URL (この例では outlook.office365.com) への認証を行います。認証情報を入力した後、Exchange 用のすべての API へのアクセスの拠点として動作するクライアント オブジェクトを作成できます。
// クライアント オブジェクトを作成
ExchangeClient client =
newExchangeClient(newUri("https://outlook.office365.com/ews/odata"),
result.GetAccessToken);
ここでは .NET を使用しているので、LINQ などのネイティブな言語機能を使用できます。このため、Office 365 の予定表へのクエリは、LINQ でクエリを作成して実行する場合と同じくらい簡単に実行できます。// 予定表のイベント データを取得
var eventsResults = await (from i in client.Me.Events
where i.End >= DateTimeOffset.UtcNow
select i).Take(10).ExecuteAsync();
上記のようにわずか 4 行のコードで、Office 365 API への呼び出しを開始できます。
マイクロソフトでは、一貫性のある API で多様なデバイスやサービスのプラットフォームにアクセスできるようにしたいと考え、クライアント ライブラリはポータブルな .NET ライブラリとしました。これにより、Xamarin から使用すると Android や iOS のデバイスに対しても動作します。また、認証時には、プラットフォームごとに異なる UI を表示する必要があるため、プラットフォーム独自の認証ライブラリを提供しています。このライブラリは、ポータブルなライブラリと併用して、エンドツーエンドのエクスペリエンスを提供するためにも使用できます。ここでは「クライアント」ライブラリと呼んでいますが、これらは Asp.Net Web Forms や MVC などの .NET サーバーのテクノロジでも動作します。つまり、.NET プラットフォーム全体が対象となっています。
JavaScript で複数のデバイス プラットフォームを対象としたマルチデバイス ハイブリッド アプリケーションを作成している開発者の皆様のために、JavaScript バージョンのライブラリも提供しています。このバージョンでは .NET バージョンと類似のエクスペリエンスを提供しつつ、await パターンの代わりに promise パターンを使用するなど、JavaScript のパターンやプラクティスも採用しています。
認証を実行し、Office 365 の予定表から今後のイベントを取得する場合の JavaScript のサンプル:var authContext = new O365Auth.Context();
authContext.getIdToken('https://outlook.office365.com/')
.then((function (token) {
// 認証成功
var client = new Exchange.Client('https://outlook.office365.com/ews/odata',
token.getAccessTokenFn('https://outlook.office365.com'));
client.me.calendar.events.getEvents().fetch()
.then(function (events) {
// 予定表のイベントの currentPage を取得
var myevents = events.currentPage;
}, function (reason) {
// エラー処理
});
}).bind(this), function (reason) {
// 認証失敗
});
認証とクライアント オブジェクト作成の流れは .NET と JavaScript で類似していますが、それぞれの言語にネイティブな方法で行います。マイクロソフトは、このライブラリ用の JavaScript ファイルとあわせて、TypeScript でアプリケーションを開発する方のために TypeScript の型定義 (.d.ts) も提供しています。
このライブラリの使用開始にあたっては、いくつかのことに留意する必要があります。今回リリースされたライブラリは、極めて初期段階のプレビュー版であり、概念実証を行うと共に皆様からフィードバックをお寄せいただくことを目的としています。このライブラリは、現時点ではサービスで提供されているすべての API に対応しているものではなく、またライブラリ内の一部の API は動作しません。また、ライブラリ内の API も今後大幅な更新が予定されています。マイクロソフトでは、API の公開方法について、ご満足いただけた点とご不満な点の両方のご意見をお待ちしております。ここでは、ページングの動作方法や認証ライブラリの現時点での実装方法など、いくつかの前提条件を定めています。しかし、これはユーザーの皆様にとって最良のものであるとは限らないため、ぜひ、お客様がこのライブラリをアプリケーションでどのように使用したいと考えているかについてご意見をお寄せください。ライブラリの開発の参考にさせていただきます。
stackoverflow (英語)の会話に参加して、フィードバックをお送りいただけます。質問やフィードバックは Office365APIsというタグを付けて投稿してください。
ツールの更新
今回の Office 365 API Tools for Visual Studio 2013 の更新に伴い、このツールでは、お客様のプロジェクトに追加可能な Office 365 サービスが表示されます。Office 365 の認証情報を使用してサインインした後は、お望みのサービスを選択して必要なアクセス許可を適用するだけで、簡単にサービスをプロジェクトに追加できます。
ユーザーが変更を送信すると、Visual Studio は次の処理を実行します。
- Office 365 のサービスを使用できるように、Microsoft Azure Active Directory にアプリケーションを登録します (英語) (当該アプリケーションが未登録の場合)。
- プロジェクトに次のものを追加します。
- 1. Nuget から取得した、サービス構成用のクライアント ライブラリ
- 2. クライアント ライブラリを使用するサンプル コード ファイル
サポートされるプロジェクトタイプ
クライアント ライブラリは多岐にわたるため、Office 365 API ツールは Visual Studio のさまざまなプロジェクト タイプ (クライアント、デスクトップ、Web) で使用できます。ここで、5 月更新の最新版でサポートされているプロジェクト タイプをすべて示します。
- .NET Windows ストア アプリ
- Windows フォーム アプリケーション
- WPF アプリケーション
- ASP.NET MVC Web アプリケーション
- ASP.NET Web フォーム アプリケーション
- Xamarin の Android アプリケーションおよび iOS アプリケーション
- マルチデバイス ハイブリッド アプリケーション
最新版のインストール
最新版のインストールは、次のいずれかの方法で行います。
- 次の手順で、Visual Studio で更新プログラムを確認します。
- Visual Studio のメニューで [Tools]、[Extensions and Updates]、[Updates] の順にクリックします。
- インストール可能な Office 365 API Tools の更新プログラムが表示されます。
- [Update] をクリックすると最新版に更新されます。
または
- 拡張機能をダウンロード (英語)して手動でインストールします。
更新完了後は、通常どおり Office 365 API ツールを呼び出せるようになります。ソリューション エクスプローラーでプロジェクト ノードに移動し、コンテキスト メニューで [Add]、[Connected Service] の順に選択します。
マイクロソフトは、今回のリリースを喜ばしく思っており、Office 365 API 使用時のエクスペリエンスを大幅に簡素化できると期待しています。また、今後も Office 365 API Tools およびこのライブラリを定期的に更新していく予定です (このブログ記事を頻繁に確認していただいている方は、このツールが 3 か月間で 3 回更新されていることにお気付きかと思います)。
他に、クライアント ライブラリとツールについて説明した Channel 9 のインタビュー動画 (英語)も公開されています。
ぜひ、こちらのページ (英語)から皆様のご意見をお寄せください。
—Chakkaradeep Chandran