みなさん、こんにちは。プロダクトマーケティング部のタクミンです。
みなさんは9月1日が何の日かご存じですか?正解は、「防災の日」です。1923年9月1日に発生した関東大震災にちなんで制定された防災啓発デーです。毎年、この「防災の日」を中心として全国で防災訓練などが行われ、災害についての認識を深めています。
今回は、アステリア社で防災意識を高める取り組みの一環として、社内で運用している「ASTERIA Warpで地震情報をSlackに通知する」方法をご紹介します。地震速報をSlackに通知するフローを開発した研究開発本部の田村健さんにお話を伺いました。
目次
きっかけは東日本大震災でした。オフィスにいた社員や出先の社員の安否確認をしなければならなかったのですが、当時はSlackもなくメールベースで行っていました。その後、当社と関わりの深い熊本県でも大きな地震がありました。大きな地震が発生すると被害も大きくなってしまうので、地震があったときに速やかに社員の状況や安否を把握できるホットラインがあるといいなと常々考えていました。そこで、地震が起こったときに、何かをトリガーにして地震情報を伝え、それに簡単にレスポンスできる、という仕組みを作ろうと思いました。そんなときに気象庁の防災情報サイトで地震の発生情報がデータとして発信されているのを知りました。ASTERIA Warpを使えば、どんなサイトでもスクレイピングして情報を抜き出せるので、簡単にできるんじゃないか、と思って作ってみたというのが経緯です。
最初のバージョンでは気象庁のサイトで公開されているデータをASTERIA WarpのHtmlParseというコンポーネントで解析してSlackで通知することにしていました。HtmlParseを使ってテーブルから震度やマグニチュード、震源などの情報をとってきて時系列で並び替えるようにしました。サイトからすべてのデータを取ってくると過去に通知した分の情報も取れてしまいます。そこでデータをフィルタリングして、最終的には必要な最新の情報だけをSlackに通知するという仕組みを作りました。フロー全体はこんな感じです。
ここまでは最初のバージョンで、うまくできた!と思っていた矢先に、気象庁のサイトがリニューアルされ、このフローが使えなくなってしまったんです…汗
リニューアルされた後は、以前に比べるともう少し扱いやすいJSONフォーマットでデータが取れるようになりました。 JSONフォーマットの扱いもASTERIA Warpは得意なので、地震情報をSlackで通知する部分を急遽、JSONフォーマットを使って処理するように変更しました。また、もともとやりたかったSlackでの安否確認の部分を新たに設定し、Slackのリアクション機能を使って簡単に安否確認できる仕組みを作りました。
ここまでが通知から安否確認までの全体的な流れです。
最初に作ったフローだと、HtmlParseを使ったことです。実は、HtmlParseは私が作ったコンポーネントなんです!とても便利なのでいつも自画自賛しています(笑)これを使えば簡単にHTMLからデータを取れるというのは分かっていたので、すぐにイメージが湧きました。あとは、どのようにフィルタリングして最新の地震情報だけを通知するのか、もポイントです。また、JSONの改良版を使ったものに関しては、データの名前がcttのように短い略称になっていて分かりにくいので、データを見比べながらマッピングを設定しました。
運用するにあたっては、そもそも使っていい情報なのかを調べることに一番気を遣い、利用規約などをしっかり確認しました。
フロー作成する部分に関しては1日もかかっていないです。開発者ですし、熟知していますからね。ただ、先ほど話した利用規約などを調べるのを含めると実働で2日くらいかと思います。
テレワークなど働き方の変容に合わせて、全国の地震情報をカバーできる仕組みを活かしていきたいです。アステリアは東京・大阪・名古屋・熊本に拠点があり、さらにワーケーションや移住組などいろいろな地域で働く人がいます。そういった現代の働き方に合わせて活用できるようにしたいと思います。また、Slackを利用して通知するのは、メールなどよりも分かりやすくていいのですが、Slackが社内で使われるに従って情報量も多くなってきており、目につきにくくなってきています。そこで弊社のアプリ開発ツール「Platio」と連携してもっと通知が目に届くようにしたいと思っています。 PlatioはSlackと比べて、それぞれの報告時刻や「何か困っていることがある」といった付加的な情報も柔軟に追加できるので管理面で便利なんです。 全体的なレスポンスにどれくらいの時間がかかるかだったり、社員リストを突き合わせたり、という使い方もできるかなと思っています。そういった広がりをもたせるような活用を、Platioを使って進めていきたいです。
社員に使ってもらえるかが重要になってくるので、いかに使いやすくしていくかを考えています。その一つとして、管理部の方からは安否報告の集計なども行いたいと聞いています。 そこで集計などが得意分野であるASTERIA Warpをさらに利用してPlatioからの情報を速やかに集計できるか試していきたいです。
地震が起こったとき、手軽に安否確認できるようにこのフローをどんどん活用していきたいですね!また、地震だけでなく、台風や大雨などの災害時にもこの安否確認を促すフローを活用できると思うので防災意識を高めるきっかけになれば幸いです。
地震速報フローの詳しい設定方法はこちらの記事をご覧ください。
アステリアの製品に関するコンテンツ制作を行っています。新卒で入社し、日々奮闘中です。新しいことを学ぶのは楽しいです!
Related Posts
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
アステリア製品デベロッパー同士をつなげ、技術情報の共有やちょっとしたの疑問解決の場とすることを目的としたコミュニティです。