GmailからLINEに通知する(LINE Notify)(Zapier対応)(IFTTTがGmail非対応!)
目次
はじめに
こんにちは、のんびりエンジニアのたっつーです。
Twitter(@kingyo222)で Unity情報 を発信しているのでよければフォローしてください!
タイトルの通りです、Gmail の重要なメールなどを LINE にメッセージを通知できる仕組み(LINE Notify)を使ってみたいと思います。
↓のような事が出来ます。
Zapier とは?
以下ブログを引用させていただきます。
Zapierは複数のサービスを連携させて自分だけの処理を作れるサービス。 Google スプレッドシートに更新があったらChatWorkに通知する とか。 よく似ているものとしては IFTTT が有名。
https://qiita.com/nottegra/items/c248f8c4474439f40a49
LINE Notifyとは?
簡単に言うと、プログラム言語を用いてLINEに通知を行うことができます。
以下、公式の説明になります。
Webサービスからの通知をLINEで受信
https://notify-bot.line.me/ja/
Webサービスと連携すると、LINEが提供する公式アカウント”LINE Notify”から通知が届きます。複数のサービスと連携でき、グループでも通知を受信することが可能です。
ちなみに、公式では以下サポートしており、このサービス(Github、IFTTT、Mackerel)を使えばノンプログラミングでサービスの連携が行えます。
IFTTTを使ってみたのですが、2019年3月からGmail連携が無効になったみたいでできませんでした。そこで、Zapierを使ってGmail → LINE の通知を行ったのでご紹介したいと思います。
余談ですが、C#プログラミング言語からLINEへの通知記事もあるので気になる方はご参照ください。
LINE の設定
LINE Notifyトークンの発行
まず最初に、LINE Notiy に登録を行いましょう。
(登録手順は割愛いたします)
次に以下マイページに移動してください。
https://notify-bot.line.me/my/
アクセストークンの発行を行ってください。
トークン発行画面が表示されるので、以下情報を入力して、トークンを発行してください。
- トークン名:適当につけましょう
(C#ってついてますが気にしないでください) - トークルームの選択:LINE Notifyはグループ トーク にのみ通知が行えます、適当なグループが無ければ1人グループなどを作成して使いましょう
トークンが発行されました。
英数字の文字列が表示されるのでコピーしておきましょう。
※ここのトークンは一度しか表示できないので忘れないでください。
LINE Notifyをグループトークに招待
次に、「LINE Notify」ユーザをグループトークに招待します。
以下の画像のグループを作成しました、ここに「LINE Notify」ユーザを追加しましょう。「LINE Notify」ユーザが追加されると以下のように参加メッセージが表示されます。
Gmail の設定
Gmail側で色々と設定があるので、そこを説明したいと思います。
Zaiper では、Gmailのラベルに基づいてフィルターを行い新規メールであったりをトリガーにして、通知処理を行います。そこで事前に、Gmail 側で特定メールにラベル情報のフィルターを設定します。
まずは、特定のメールを開いてメニューから「メールの自動振り分け設定」を選びます。
次に、上記指定されていたメールアドレスが設定されている事を確認して、「フィルタを作成」を選択します。
「ラベルを付ける」で、実際にラインに通知するラベルを選択してください。
※適当なラベルが無い場合は作成してください。
以上でGmailの設定が完了になります。
この設定により、フィルターに指定したメールアドレス受信時に自動でラベルが付けられて、Zaiper側で本メールが取得できるようになります。
Zaiper の設定
次に、Zaiper にログインしてダッシュボードを開いてください。
右上から新しいタスクを作成するため「Make a Zap!」を選択してください。
適当にタイトルを付けます。
まず最初に、入力するプラットフォームとして「Gmail」を選択してください。
次に、イベント通知のトリガーを選択します。
ここでは新しいメールがあった場合とするため、「New Email」を選択します。
次に、対象のGmailアカウントを選択します。
次に、対象ラベルを選択します。
ここでは上記Gmailでフィルターに設定したラベルを使います。
次に、Gmailでメールを受信したら何をするかのアクションを選択します。
APPは「Webhooks」を選択して、EVENT「POST」を選択しましょう。
以下にように入力してください。
- URL:https://notify-api.line.me/api/notify
- Data:「message」を入力、メールのタイトルを選択
- Headers:「Authorization」を入力、 「Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxx」 と入力してください
※ xxxx は LINE Notify トークン
ここで実際に、LINE側に通知テストが行われます。
※LINEでメッセージが受信されている事が確認できます。
上記で基本的な設定は終わりになります。
今作った設定はデフォルトオフになっているため、有効にしましょう。
すべて設定が完了すればこんな画面になります。
実行結果
どうでしょうか、以下のように表示されれば設定完了です。
Zapierは動作間隔が15分なので、5分間隔にしたい場合などは上位プランに変更しましょう。
※事前にフィルター設定したメールと違いますが、確認が行えるのがなかったのでこれで勘弁してください?
よければ、SNSにシェアをお願いします!