【LINEでGmailを確認】ZapierでGmailをLINEに転送して通知しよう!

GmailできたメールをLINEに転送して通知するみたいなことをやっていきたいと思います。前にIFTTTでも同じようなことをやったような気がするけど、今回はZapierを使っていく。Zapierってなんだよ?って場合は以下の記事を参考にしてみるといいです。まあIFTTTと同じような感じのやつです。

とりあえずまあやっていきましょう。

Zapierを使ってGmailをLINEに転送する方法

Zapierを使って受信したGmailをLINEに転送する方法だけど、残念ながらZapierからActionとしてはLINEは存在しない・・・

ActionでLINEがあればそれを使えばいいかなーって思っていたけど、ないならしょうがない。LINEに通知させるプログラムを実行することさえできれば、LINEに通知はできるはずだからプログラムを実行できるActionを探してみる。そうすると[Code by Zapier]というプログラムを実行できるActionがあるではないですか。

実行できるプログラムはJavascriptかPythonで書かれたものならできるみたい。LINEに通知するコードを書いてGmailのメールがきたら書いたプログラムを実行してLINEに通知するようにすればいけるだろう。

webhookを使う

ZapierからJavascriptかPythonを実行することができるのはわかったけど、コードを書くのは正直面倒。だからwebhookを使いたい。そうすれば今回のGmailをLINEに通知するっていうやつももっと簡単にできるはず。Actionでwebhookを検索してみると[Webhooks by Zapier]っていうのが出てくる。

PREMIUMって書かれているけど、使ってみると使える。どういうことなんだPREMIUMってそういうPREMIUMじゃないのかな。

GmailをLINEに転送するZapを作成する

なんとなくLINEに通知するプログラム書いてやるかWebhookを使えば、ZapierからGmailのメールを転送できそうだなあということなので、早速Zapを使っていきます。設定するTriggerとActionはこんな感じ。

  • Trigger・・・Gmail・・・New Email in Gmail

Actionはどっちかだね。コードを書いて実行するか、webhookを使うか。どちらの方法も書いていこうかなと思う。

  • Action・・・Webhook by Zapier
  • Action・・・Code by Zapier・・・Javascript or Python

GmailのTriggerを設定する

まずはGmailのトリガーを設定する。新しいメールがきたらっていうトリガーにしたいからTrigger Eventは[New Email]にしておく。

通知するためにLINENotifyからtokenを取得する

次は受信したGmailを通知するための設定をやっていきたいんだけど、通知するためにLINE NotifyっていうLINEに通知するためのものが必要だからまずはその設定をしていこう。

LINE Notifyでアクセストークンを取得する

LINEに通知させるためにLINENotifyという通知をしてくれるサービスを使います。プログラムから使うトークンを取得するため、マイページにいって[トークンを発行する]ボタンをクリック。

LINEへの通知はグループへもできるけど、今回は1:1でLINE Notifyからの通知を受け取るようにしたい。だから[1:1でLINE Notifyから通知を受け取る]にしてトークン名は好きな名前にしておこう。

そしたら[発行する]ボタンを押してトークンを発行。

このトークンは後で使うのでコピーしておきましょう。

LINEに通知するためのwebhookを設定する

コードで実行する場合は後で書くとしてまずはwebhookでやる場合を考えたい。アクセストークンを取得したら、webhookの設定をしていこう。Action Eventは[POST]にしておく。

その他の項目は以下にしておく。

  • URL・・・https://notify-api.line.me/api/notify
  • Data・・・messge・・・LINE通知したい内容
  • Headers・・・Authorization・・・[Bearer 取得したアクセストークン]

これを実行してみるとこんな感じでLINE Notifyからメールの内容が記載された通知が届く。

コードを実行してGmailをLINEに転送する

こっちの方がコードを書かないといけないから単にメールを転送するだけなら、ちょっと面倒だけどまあやっていきましょう。はじめに画像を載せておくと、こんな感じに書くとLINEに通知が届く。コードはJavascript。

コードは以下。

fetch('https://notify-api.line.me/api/notify', {
        method: 'POST',
        headers: {
          'Authorization': 'Bearer' + ' ' + '取得したアクセストークン',
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: `message=${inputData.message}`
    })
    .then(function(res) {
      return res.json();
    }).then(function(json) {
      callback(null, json);
    });

ちなみにZapierから自由にライブラリなんかは使えないから、API叩く時のライブラリなんかはZapierの流れに乗らないといけない。

Unfortunately you cannot require external libraries or install or import libraries commonly referred to as "npm modules". Only the standard node.js library and the fetch package are available in the Code app. fetch is already included in the namespace.

どうやらzapierのJavascriptではnode-fetchっていうものが最初から含まれているみたいだからこれを使おう。ここら辺は自分で自由にimportして使えたりしないからまあちょっと面倒だよね。そこまでZapierでコードを実行するための情報があるわけではなかったからちょっと色々やる時には苦戦するかもしれない。

ただコード実行してもこんな感じでLINENotifyから通知させることはできるから、コードで実行したい場合は色々やってみるといいです。

まとめ

zapierを使ってGmailで受信したメールをLINEに通知してみたけど、どうだろう。LineNotify使ったりしてちょっと面倒だけど、まあ一回作ってしまうとあとはメールがLINEに通知されるから楽だよね。IFTTTでも同じようなことができるからIFTTT使っている人はそっちでやってみるといいかもしれない。

似ているようなものは以下の記事でやっていたりするから気になったら参考にしてみてください。

おすすめの記事