新規投稿
フォローする

Garoon REST APIとMicrosoft Flowで手軽にガルキン連携

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にログインし、
「マイフロー」「一から作成」をクリックし、トリガーを「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の共通仕様
予定の登録(POST)
 
最後にフローに任意の名前をつけて、保存します。
フローが「オン」(有効)になっていることを確認してください。

動作確認

kintoneにレコードを追加してみます。
冒頭の画像のように、Garoonのスケジュールに同じタイトルのスケジュールが登録できていれば成功です!

リクエストの値が不正な場合

たとえば、終了日時を開始日時より前に設定した場合など、GaroonのREST APIリクエストの仕方が正しくない場合、
Garoon側からエラーが返り、フローは失敗します。
そのエラー内容は、Microsoft Flow側のフローの実行履歴から確認ができます。
ガルキン連携は工夫次第でより便利なものができそうなので、皆さんもぜひアイディアを絞って共有いただければ幸いです!
1

0件のコメント

サインインしてコメントを残してください。