見出し画像

【zapier】gmailとlineの連携やってみた!

zapierの無料機能、かつ  non_プログラミング  でgmail, line連携のやり方紹介します。

作成内容
特定メールを受け取った時にLineにメールの受信通知を行います。

使用ツール

・zapier:gmailとlineの連携に使用
・gmail:メールのフィルタリングに使用
・line:通知先
・postman:プログラムの翻訳に使用




ステップ1:Gmailで通知したいメールのフィルタを作成


gmailのデフォルト機能で送信元やKeywordを含む条件で通知したいメールのフィルタを作成。
※フィルタ作成する際は「◯件の一致するスレッドにもフィルタを適用する」をチェック。ステップ2でデータ取得確認のため。

詳細は公式ヘルプにて
https://support.google.com/mail/answer/6579?hl=ja




ステップ2:zapierでメール取得のトリガー設定

・メインメニュー左側の選択画面からzapsを選択
・「zapを作成する」を選択
・トリガーでgmailを選択
・Trigger Eventでnewmailを選択
・Gmail accountで自分のgmailを指定
・Label/Mailboxでステップ1で指定したmailbox(フィルタ)を指定
・Find Dataで指定したmailboxの内容が確認できれば完了
(mailbox内にまだmailがない場合は確認できない)

スクリーンショット 2020-10-25 10.29.58



ステップ3:Lineのアクセストークン発行

こちらのブログを参照
https://www.smilevision.co.jp/blog/tsukatte01/

アクセストークンとは
Lineのどのトークルームに通知を行うのかを特定するために使用するIDみたいなものです。



ステップ4:ライン通知用のプログラムを作る


zapier上で動くのがjavascriptかpythonのため今回はpythonのプログラムを作ります。
※以下に記載する「▼pythonプログラム」のトークン変更すればいいのでこのステップは飛ばしてもOK

curl -X POST -H 'Authorization: Bearer ACCESS_TOKEN' -F "message=test" https://notify-api.line.me/api/notify

の「ACCESS_TOKEN」部分をステップ3で作成したトークンに入れ替えてコピー
(これはコマンドプロンプトで使用ためのプログラムです。Postmanを使ってpythonに翻訳します。)

・postmanメイン画面左上にある「import」を選択
・「Row text」を選択し、コピー内容をペースト→「continue」,「import」とクリックし進める
・画面右中央にあるsaveの下に小さく「code」があるので選択
・出てきた画面左側で翻訳先言語が選べるので「Python - Requests」を選択
・右側に表示されるpythonのプログラムをコピペしておく

▼pythonプログラム(アクセストークンは変更必要)

import requests
url = "https://notify-api.line.me/api/notify"
payload = {'message': 'test'}
files = [
]
headers = {
 'Authorization': 'Bearer ACCESS_TOKEN'
}
response = requests.request("POST", url, headers=headers, data = payload, files = files)
print(response.text.encode('utf8'))


スクリーンショット 2020-10-25 10.56.24




ステップ5:zapierでLine通知の設定

・zapierの「2. Choose an action」で「Code by Zapier」を選択
・Action Eventで「Run Python」を選択
・Codeでステップ4で作成したプログラムをコピペ
・TEST&REVIEWで通知がLineに届けば完成!


※Gmailから取得した情報をもとにLineの通知を出し分けたい場合(Pythonを記述する必要があります。)

Run Pythonの「Set up action」にinput Dataという項目があります。


変数の指定

ここでgmailで取得した情報を辞書型リスト(input)に格納することができます。

下のスクショではsubjectがkeyに取得したgmailの題名(subject)がvalueに格納されます。

「Code」でリストの呼び出しを行えばデータの使用が可能

呼び出し例)subjet = input['subject']

参考文献(https://zapier.com/help/create/code-webhooks/use-python-code-in-zaps)


総評


ステップ4が肝。
nonプログラムで仕組み化するためPostmanで翻訳するなど工夫した。
GoogleやLineなどAPIを提供してくれているページでは具体例のプログラム記述してあることが多いため他にも応用が効きやすい。
バージョンによって書き方が異なるためか筆者はここで何度かエラーが出てしまった。



この記事が参加している募集

やってみた

この記事が気に入ったらサポートをしてみませんか?