カテゴリー
Uncategorized

IFTTTでWebサービスのイベントをLINEグループに通知できるようにした

友人と作っているWebプロダクトがあります。このサービスは特定のジャンルの人同士の友達探しをサポートするサービスであり、クローズドなやりとりが多く、サービスが盛り上がっているのかどうか?どれくらいの頻度でユーザ登録があるか?といったデータが把握しにくいという状況でした。1ヶ月前に公開したばかりのサービスでもあり管理画面を実装するほどでもないと思ったので、より簡単な方法を模索しました。友人との連絡はLINEグループを使用しています。そのため今回はLINEグループに通知をする方針としました。

個人開発は、いかに工数をかけずに実装するか?という観点を重要視しています。そこで記憶の片隅にあったIFTTT(イフト)を活用することにしました。

幸いなことに、IFTTTはLINE Notifyというサービスと簡単に連携することができます。LINE Notifyは様々なサービスからの通知を受信して、端末にメッセージ等を送信してくれるサービスです。このサービスの公式アカウントをLINEグループに招待することで、LINEグループへメッセージ通知を流し込むことが可能です。

さて、Webアプリケーションでユーザ通知が行われた場合、どのようにIFTTTに通知するでしょうか。最も簡単な方法は、Webhookでしょう。よって構成は下記の通りになります。

早速始めましょう。IFTTT

IFTTTでレシピを作成します。

IFTTTは「もし何かがあったら」「その時何をする」をセットで設定します。今回は「Webhookを受信したら」「LINE Notifyで通知する」という設定を行います。

If Thisを選択して、Webhookを設定します。

次に、Then Thatをクリックし、LINEを選択します。

初回はLINEアカウント連携に飛ばされると思うので、連携してください。Send messageのRecipientで、送信先のグループ名を選択します。ここで、「1:1でLINE Notifyから通知を受け取る」を選択すれば、自分だけに届くはずです。

Value1,2,3はプレースホルダです。これらの値はWebhookリクエスト毎に自由に設定でき、LINEにはその値で置き換えられたメッセージが送信されます。

これで設定完了です。

次に、WebアプリケーションからIFTTTにWebhookリクエストを投げる必要があります。事前に、エンドポイントのURLを取得しましょう。右上アイコン>My services>Webhooks>右上 Documents を選択しましょう。

WebアプリケーションからWebhookリクエストを送信する部分を実装します。

# LINE通知
# value1 ユーザ名
# value2 登録日時
# value3 URL
begin
  uri = URI.parse(IFTTTから取得したエンドポイント)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  params = { value1: 値1, value2: 値2, value3: 値3}
  headers = { "Content-Type" => "application/json" }
  response = http.post(uri.path, params.to_json, headers)
  ap response
rescue => e
  Raven.capture_exception(e)
end

最後に、お手持ちのスマホのLINEでLINE Notifyを友達追加したあと、グループに招待しましょう。

喜んでもらえて、エンジニア冥利に尽きますね!

まとめ

IFTTTを使うことで、Webhookを契機にLINE通知を行う仕組みを簡単に実現することができました。

IFTTTはLINEの他、Slackなど様々なサービスと連携することができます。活用方法によっては実装なしに便利な自動化ができるようになることでしょう。

個人的には、IFTTTを使った自動化を体験できたのは知見が広がったという意味でよかったかなと思います。それでは。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です