2018年5月版で公開されたGaroon REST APIと、Microsoft Flowを使って、kitnoneとGaroonの連携を簡単にできないかと考えてみました。
そこで、kintoneのアプリにレコードを登録したらGaroonのスケジュールにも同じ内容を登録(転記)できるというフローを作ってみました!
気軽にGaroon REST APIのPOSTを試すことができるため、ぜひ参考にしてみてください。
何ができるか
以下のように、kintoneアプリから、Garoonに任意の予定メニューのスケジュールデータ(通常予定)を送ることができます。
また、このフローを作ることで、Garoon REST APIのPOSTでどんなデータが送られるかを学ぶことができます。
(新しいAPIを使った連携体験がメインのため、あまり実用性は考慮できていなくてスミマセン…)
ドメインをまたがった連携も可能ですが、kintoneの作成者のcode(ログイン名)で紐づけており、Garoon側にも同じログイン名が存在する必要があります。
Garoon側のスケジュール登録者は、API実行者=(Microsoft FlowのHTTPアクションのヘッダーでログインを指定したアカウント)になります。
Microsoft Flowのkintoneコネクタを使う場合の注意点
大きく1点として、kintoneコネクタは2018年6月現在、プレミアム版での提供のみですので、ご注意ください。試用は可能です。
その他の注意点はこちらの記事をご確認ください。
kintoneコネクタ(Microsoft Flow)を使う前に知っておきたいこと10選
https://developer.cybozu.io/hc/ja/articles/360000361506
kintoneアプリの作成
kintoneアプリを作ります。以下のフィールドを含めます。
- 予定メニュー(ドロップダウン) ※Garoon側の予定メニューに同様の設定がない場合、あらかじめ設定しておく必要があります
- タイトル(文字列(1行))
- メモ(文字列(複数行))
- 開始日時(日時)
- 終了日時(日時)
- 作成者(自動入力)
Microsoft Flowの設定
kintoneの接続の設定
Microsoft Flowにログインし、
https://japan.flow.microsoft.com/ja-jp/
「マイフロー」「一から作成」をクリックし、トリガーを「kintone」で検索して
「When a record is added to an app」を選択します。
初回の場合はkintoneへの接続設定が必要です。
cybozu.comへのログイン画面が出るので、ログインします。
kintoneのトリガーの設定
トリガーの設定で、先ほど作成したkintoneのアプリのIDを指定します。
アクションの設定(HTTP POST)
アクションは「HTTP」を指定します。ここでGaroon のREST APIをMicrosoft Flowに叩いてもらうわけです。
以下のように設定します。
-
方法: POST
-
URI: https://{subdomain}.cybozu.com/g/api/v1/schedule/events
-
ヘッダー: key, value
X-Cybozu-Authorization,(「ログイン名:パスワード」をBase64でエンコードしたもの)
Authorization ※Basic認証を使っている場合, Basic (「ログイン名:パスワード」をBase64でエンコードしたもの)
Content-Type, application/json -
本文:
{
"eventType": "REGULAR", "eventMenu": "@{triggerBody()?['record']?['ドロップダウン']?['value']}", "subject": "@{triggerBody()?['record']?['文字列__1行_']?['value']}", "notes": "@{triggerBody()?['record']?['文字列__複数行_']?['value']}", "visibilityType": "PUBLIC", "start": { "dateTime": "@{triggerBody()?['record']?['開始日時']?['value']}", "timeZone": "Asia/Tokyo" }, "end": { "dateTime": "@{triggerBody()?['record']?['終了日時']?['value']}", "timeZone": "Asia/Tokyo" }, "isAllDay": "false", "isStartOnly": "false", "originalStartTimeZone": "Asia/Tokyo", "originalEndTimeZone": "Asia/Tokyo", "attendees": [ { "type": "USER", "code": "@{triggerBody()?['record']?['作成者']?['value']?['code']}" } ]
}
※ 上記本文をこのままコピペしてもうまくいかない場合は、動的なコンテンツの部分(赤い四角の項目)は、下の画像を参考に設定し直してください。
設定すると以下の画面のようになります。
APIの認証部分の書き方など、詳しい仕様は以下の記事を参照ください。
Garoon REST APIの共通仕様
https://developer.cybozu.io/hc/ja/articles/360000503306
予定の登録(POST)
https://developer.cybozu.io/hc/ja/articles/360000425163
最後にフローに任意の名前をつけて、保存します。
フローが「オン」(有効)になっていることを確認してください。
動作確認
kintoneにレコードを追加してみます。
冒頭の画像のように、Garoonのスケジュールに同じタイトルのスケジュールが登録できていれば成功です!
リクエストの値が不正な場合
たとえば、終了日時を開始日時より前に設定した場合など、GaroonのREST APIリクエストの仕方が正しくない場合、
Garoon側からエラーが返り、フローは失敗します。
そのエラー内容は、Microsoft Flow側のフローの実行履歴から確認ができます。
ガルキン連携は工夫次第でより便利なものができそうなので、皆さんもぜひアイディアを絞って共有いただければ幸いです!