からめもぶろぐ。

俺たちは雰囲気で OAuth をやっている

Microsoft Bookings で予約がされたときのイベントを Power Automate でトリガーする

Microsoft Bookings にしばらく触っていなかったのですがいつの間にか Microsoft Teams 会議に対応していました。COVID-19 の状況下においてオンライン会議の予約ができるのは嬉しいですね。Microsoft Bookings だけでもだいたいのことは完結するのですが、そこにカスタムでちょっと何かをしたい場合、やはり Power Automate を使って予約がされたときのイベントをトリガーしたいです。

改めて Microsoft Bookings の仕組みを確認してみます。ビジネスを新しく作成すると Azure AD にユーザーが作られます。このユーザーはライセンスを持たないですが Exchange のメールボックスを持っています。そして予約が作成されると、このユーザーを開催者としてイベントが作成され、スタッフに会議出席依頼が出されます。*1 要するに、このユーザーに対してイベントが作成されたときをトリガーすればよさそうです。

Power Automate で接続を作成するにはユーザーにログインする必要があります。しかし自動的に作成するユーザーのパスワードはわからないので一度リセットしてあげる必要があります。*2 トリガーとしては「新しいイベントが作成されたとき」を使用します。このトリガーの出力からは大した情報を得ることはできませんが、そこから Microsoft Graph の Bookings API を呼び出すことで詳細な情報を取得することができます。

docs.microsoft.com

ただし Power Automate には Bookings API のコネクタはないので、HTTP アクション、つまりプレミアム コネクタの利用が必要になります。場合によっては Logic Apps を使うことも検討したほうがいいかと思います。

*1:オンライン会議を有効にしたときはこのタイミングで Microsoft Teams 会議が作成されます。

*2:パスワードをリセットしても動作には影響ありません。