こんにちは。CData Software Japanリードエンジニアの杉本です。
去年末なんですが、Office365・Graph APIでひっそりとイベントの転送とキャンセルのAPIが追加されていたのをご存知でしょうか。
最近見つけたGraph APIのアップデート履歴ページに掲載されています。
公式のリファレンスは以下からどうぞ。
イベント系の機能としてはメジャーな気がするので、若干今頃感があるのですが、今回お客様からの要望でこのAPIにCData Office365 Driverが対応しました!
というわけで今回はこの追加された2つの機能を紹介したいと思います。
画面上での使い方
すでにOffice365を利用している方々はすでに使ったことがある機能かとは思いますが、改めて確認してみたいと思います。
今回対象とするのは、参加者を追加して作成した以下のようなイベントです。
このイベントはメール連携のような機能を持っていて、任意の参加者を加えるためにイベントを「転送」することができるようになっています。
また、イベントをキャンセルして、キャンセル理由を各参加者に伝えることが可能です。
このUI上の機能がAPIおよびCData Driverを通じて実行できるようになりました。
CData Driverでの使い方
それでは実際にCData Office365 Driverを利用して、試してみましょう。
今回はCData Office365 JDBC Driverを用いていますが、ADO.NETやODBC・PowerShell Cmdletsなどでも利用することができます。
まずは対象とするイベントを取得してみましょう。以下のSQL文で現在の自分が持っているイベントの一覧が取得できます。イベントの転送やキャンセルにはこのイベントの「id」が必要になるので、予め控えておきましょう。
SELECT * FROM Events;
続いてイベントの転送を実行してみます。
イベントの転送機能は「ForwardEvent」というストアドプロシージャで実行できます。
例えば上記のイベントを「user01@sugimomoto48.onmicrosoft.com」というユーザーに転送する場合、以下のようにクエリを記述して実行します。
Exec ForwardEvent EventId = 'AAMkADEzNGFlMjhhLTk2OTktNGZmYy05ZGQwLTdhNjU1ZGUxNGEzMQBGAAAAAACgOVml52v3T6bkLCj1h8k4BwDB7e7wCdH6QabU62vrLxZjAAAAAAENAADB7e7wCdH6QabU62vrLxZjAAATgpzkAAA=', ToRecipients = 'user01@sugimomoto48.onmicrosoft.com';
実行後、実際に画面を見てみると、以下のように「user01@sugimomoto48.onmicrosoft.com」というアカウントが参加者に追加されていることが確認できました。
ちなみに他のユーザーのイベントも転送可能です。その場合はUserIdもしくはUserPrincipalNameを追加で指定して、実行してください。それぞれのプロパティの解説は以下のとおりです。
Name | Type | Required | Description |
---|---|---|---|
EventId | String | TRUE | イベントのIdを指定します。 |
ToRecipients | String | TRUE | 宛先となるユーザーのメールアドレスをセミコロンで指定します。 |
UserId | String | FALSE | 別ユーザーのイベントの場合、ここでユーザーIDを指定します。 |
UserPrincipalName | String | FALSE | 別ユーザーのイベントの場合、ここでユーザープリンシパルを指定します。UserIdもしくはUserPrincipalNameどちらかだけで大丈夫です。 |
Comment | String | FALSE | 転送時のコメントを記載します。 |
続いてイベントのキャンセルを実行してみましょう。これも同じように「CancelEvent」というストアドプロシージャで実行できます。
最低限必要なパラメータはEventIdのみです。
Exec CancelEvent EventId = 'AAMkADEzNGFlMjhhLTk2OTktNGZmYy05ZGQwLTdhNjU1ZGUxNGEzMQBGAAAAAACgOVml52v3T6bkLCj1h8k4BwDB7e7wCdH6QabU62vrLxZjAAAAAAENAADB7e7wCdH6QabU62vrLxZjAAATgpzkAAA=';
これを実行すると、ちょっとわかりにくいのですが、以下のようにイベントがキャンセルされ、カレンダーから無くなりました。
「CancelEvent」で利用できるパラメータは以下のとおりです。
Name | Type | Required | Description |
---|---|---|---|
EventId | String | TRUE | イベントのIdを指定します。 |
UserId | String | FALSE | 別ユーザーのイベントの場合、ここでユーザーIDを指定します。 |
UserPrincipalName | String | FALSE | 別ユーザーのイベントの場合、ここでユーザープリンシパルを指定します。UserIdもしくはUserPrincipalNameどちらかだけで大丈夫です。 |
Comment | String | FALSE | 転送時のコメントを記載します。 |
おわりに
今回はシンプルにSQLでの使い方を紹介しましたが、例えばUIからストアドプロシージャを実行できるようなツールであれば、特にSQLを書くことなくこれらの機能を扱うこともできます。
以下のページでCData Office365 Driverが利用できるツール郡を紹介しているので、よかったら参考にしてみてください。