[Integromat]LINEでやり取りしたURLをSlackへ転送する
背景
- 夫婦間のLINEやり取りの中で、お互い調べものをした時のURLをよく共有しあっていた
- しかし、LINEではメッセージが流れてしまい、後から検索できない
- あれ、前に調べたあのURLどこにあったっけ?ということがよく起こる
- 上記の対策として、LINEとは別に夫婦用のslackがある
- チャンネルごとに調べた情報を整理していけるので、これがまた便利
- しかし、得てして人間はめんどくさがり、忘れるもの…
- 気づけばまた、LINEに調べたURLを貼ってしまうのである
実現したこと
- LINEのメッセージからURL(https://)を検出したら、slackの所定のチャンネルに転記する
使用したツール
- Integromat
- LINE Messaging API
- Slack
Integromatはあまりメジャーではないかもしれませんが、IFTTTやZapierに代表されるNoCodeなプラットフォーム連携サービスです。
個人的な感触としては、IFTTTやZapierに比べて対応サービス数は少ないかもしれませんが、対応できているサービスに対しては、利用できるアクションが豊富なイメージを持っています。[1]また、前述の2つよりもプログラマーフレンドリーなアクションが多い印象があります。[2]
ただ、Integromatの情報をあまり見ないのは、圧倒的に日本語情報が少ないです。そのため、英語マニュアル等の読解が難しいと、ハードルを感じるかもしれません。
結果として、Integromatのおかげで1文字もコードを書くことなく、やりたいことを実現できました!
実現方法
Integromatの使い方を中心に解説していきます。
Integromatアカウントを作成する
特に難しいことはありません。Integromatのページよりアカウントを作成します。
新しいScenarioを作成する
Create a new Scenario
から新しいシナリオを作成します。
すると、どのサービスと連携しますか?と聞かれるので、LINEを選択します。
選択したらContinue
を選びます
LINE Messaging APIとの連携
新しいシナリオに?マークが現れたら、そこをクリックし、更にLINEを選択します。
LINEのアクションはお好きなものを選んでいただければ良いのですが、今回の目的では「LINEやり取りを監視して、URLの場合はSlack通知」という目的だったので、Watch Events
を選択しました。
選択すると、IntegromatとLINE Messaging APIとの連携が必要になります。
ウィンドウ右上の"?"マークから公式マニュアルを見ることができます(下記URLへ飛びます)
GIFアニメーション付きで、Messaging APIのアカウント作成から解説してくれているため、特に迷うことなく連携ができるかと思います。
メッセージのフィルタリング
Watch events
を使うとすべてのメッセージを拾ってしまうので、メッセージのフィルタリングを行います。と言っても簡単でIntegromat上で🔧マークをクリックし、Set up a filter
からフィルタを設定します。
様々なフィルタがあるため、Text operators
内のContains
を選び、図のように設定します。
UserIDの変換
クライアント(妻)からの要望で「どちらがおくったメッセージなのかわかるようにしてほしい」とありました。2人しかいないし、マスタをいちいち作るのも面倒だったので、Integromat上にUserIDと名前を直接変換するようにしてしまいました。
画面下のTools
のText Parser
からReplace
を選択することができます。
Slackのメッセージ作成
Add another modules
から、新たなアプリとしてSlackを追加します。追加自体はSlackからの画面に従って難なく実行することができました。
今回はSlackにメッセージを送信するためCreate a message
を選択します。
LINE上での操作
LINE botにメッセージを監視してもらうため、いくつかLINE上で操作をします。
- Message APIのLINE botを友だち追加(Integromatマニュアル手順の途中に出てくるQRコードから友達追加します)
- 監視してほしいトークに上記botを追加
- 作成したグループ・トークにメッセージを送信すると、自動的にIntegromatシナリオが起動
以上で、LINE上のやり取りからURLだけを自動でSlackに転記することができました!
クライアントからのフィードバック
Integromatの無料ライセンスは1000オペレーション/月まで
完成してから気づいたのですが、Integromatの無料ライセンスでは毎月1000オペレーションまでしか実行できません。
この「オペレーション」という単位について、フローが実行される回数ではなく、アクションの数になります。今回の場合ですと以下のように、1回実行すると4カウントになります。
1. LINEメッセージを検知(1オペレーション)
--------------フィルタ----------------
2. UserIDを変換(2オペレーション:2ユーザ分)
3. Slackメッセージを送信(1オペレーション)
とはいえ、250個/月のURLが保存できるので大丈夫だろうと思っていました。しかし、上記解説の通りLINEのメッセージをすべて検知した後に、フィルタリングを行っているため、URLでないメッセージの場合でも1オペレーション消費してしまします…。
月に何件やりとりを行っているのかは把握していないですが、1000件/月は結構心もとない感じがします。
この旨をクライアント(妻)に伝えたところ、案外前向きで「URLだけbotがいるグループに送れば良いのね」という感じでした。
個人的には、それができるなら最初からslackに送ればよいのでは?とも思うのですが、同じLINEで完結するだけで違うみたいです。
URLの内容によって転記するSlackチャンネルを割り振ってほしい
要望としてはよく理解できるものの、労力の割に成果が見合わないので却下しました…![3]
おわりに
以上、完璧に要望にフィットしたわけではないものの、ある程度のところまでコードを一切書かずに実現できました。また、作業時間についても、調査時間含めて1時間未満ですので、NoCodeらしい開発ができた気がします。
今後、NoCodeによるデジタル化を進めていくうえで、「100%を目指さない」というのが重要だなと思えた気がします。
Discussion