地震速報と連動して LINE WORKS で安否確認メッセージ送信と Excel 集計 

LINE WORKS + Microsoft Flow で安否確認システムを作成してみます。

災害発生時に以下のような運用が行われることを想定します。

RSS で災害速報を取得
 -> 地震速報などをトリガーに処理を開始します。
トーク Bot で社員全員に安否確認のメッセージを送信
 -> 1:1 トークでボタン形式で応答可能な通知を送ります。
同時に BCP 担当メンバーのグループ トークルームに災害発生を通知
 -> BCP メンバー宛に災害発生の通知を行います。
社員からの安否確認の応答を Excel で集計
 -> 1:1 トークの応答を Excel に記録します。
安否確認の応答は随時、BCP 担当のグループ トークルームにも通知
 -> 同時に BCP トークルームに随時、情報を伝達します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/c0547ad3-642d-1f65-c297-99d8a01f619e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/238f781f-90e1-9845-2e75-0996b09d7212.png)

それぞれ、以下の記事で紹介している手法を組み合わせます。

RSS フィードで取得した更新情報を LINE WORKS にトーク BOT で通知する
https://qiita.com/iwaohig/items/f322e3710ed74785efdb

LINE WORKS の Bot に送信したトークを Excel に保存する
https://qiita.com/iwaohig/items/a56060ed94d53fd8a5f8

複数メンバーに個別に同報メッセージを送る LINE WORKS Bot
https://qiita.com/iwaohig/items/3f25002608c79b26b996

LINE WORKS のトーク Bot API の設定や、Azure Automation の設定も、上記の記事や、さらに当該記事内の参照記事の情報を参照してください。

##地震速報をトリガーに安否確認メッセージを送信するフロー

地震速報を提供している RSS から情報を取得します。ここでは、Livedoor の Weather hack の地震速報を利用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/4bde961a-5b26-8507-afc8-f316b8f523ba.png)

"条件" の機能でフィルタリングします。ここでは、震度3 以上の際に動作するよう設定してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/c16e0574-bffd-601c-cdbd-e763353ed303.png)

条件に合致しない場合は終了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/51457b90-221f-ad42-b670-e1bdcdb63838.png)

震度3 以上であった場合は、メンバーに個別にトーク メッセージを送ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/234c230a-6c48-8bce-5fd2-91ffb030eef3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/6c486600-a59d-3576-8303-52d83ac06d13.png)

できる限り容易に応答ができるように、選択肢のタップで返信できるボタン テンプレート形式で安否確認メッセージを送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/026e222d-4d77-5fe8-ed0b-c5921f11583a.png)




ボタン テンプレートのメッセージ送信の詳細はこちらの記事を参照

TITLE: メッセージ送信 (buttonTemplate)
URL: https://developers.worksmobile.com/jp/document/100500804?lang=ja

おおまかな手順は、各参照記事に記載の Azure Automation の設定に準じます。メッセージ内容を以下のようにボタン テンプレート用に変更します。


```
{
  "botNo": 7777,
  "accountId": "usera@example.com",    
  "content": {
    "type": "buttonTemplate",
    "contentText": $contentText,
    "buttons": [{
      "text": "無事です",
      "postback": "ButtonTemplate_safe"
    }, {
      "text": "被災しています",
      "postback": "ButtonTemplate_affected"
    }]
  }
}
```
## メンバーからの応答を Excel と BCP グループに通知

安否確認の通知に対する応答を受信するため、"HTTP 要求の受信時" をトリガーとするフローを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/75e08dd1-ae84-7766-b020-d79068a29bd5.png)

受信後は、以下のアクションを続けて行います。利用シナリオに応じて、適宜必要なアクションをアレンジしてください。

- メンバーに返信
- BCP トークルームにメンバーの安否状況を共有
- 安否情報の集計用 Excel にデータ送信

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/57778bb0-e64a-319d-4c5c-fbb826906c21.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/d2c941b2-4c8e-df48-c581-9b6ff689068c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/a5b4bb2d-7be1-959e-7c1c-d040ce14213f.png)

###動作確認
トリガーとなる RSS 受信時にメンバーに安否確認のボタンテンプレートのメッセージが同報送信されることを確認してください。

さらに、応答時の各アクションが正しく行われることを確認しましょう。

なお、テストは更新を実施できる RSS があれば、それを指定するか、何かしら別のトリガーを設定して試すと良いです。