LINEメッセージをメール転送するサービスを作ってみました。
LINE BOTに話しかけると、予め登録したメールアドレスにメッセージを転送してくれるサービスです。
なぜそんなシステムを作ったのか?
Google Cloud Platform や、案件は年収1000万円越えともいわれるGo言語の学習も兼ねてですが、一番は自分がほしかったからです。
実はえなこいんの働いている職場が、地下に引っ越しましてケータイの電波が入りにくくて、緊急のLINEメッセージが受け取りづらいのです。
そこで家族には、緊急の要件があるときはLINE BOTに話しかけてもらって、メールをPCに送ってもらう手はずにしました。
え、直接メールを送ればじゃないか?
それは面倒だそうです(^-^;
システム構成 ver1
LINE犬できた!
私が圏外でもこの子にメッセージ送ったらメール✉️で教えてくれるLINE
→LINE Message API
→https経由
→Google Cloud Function(GO言語)
→https経由
→Google App Script(GAS)
→GMail
→ブラウザデスクトップ通知 pic.twitter.com/zwO7Nxkfeo— ☆えなこいん☆ (@enakko_net) December 6, 2019
Google Clound Functionsは常時起動のサーバーなしに、関数だけサーバーに配置(デプロイ)しておくと、いざアクセスが来た時に実体化されるサーバレスと呼ばれるサービスです。
今回関数はgo言語で書きました。
LINEのメッセージがくると、HTTPSでアクセスがその go の関数に行きますので、その度に実体化され、処理がされます。
go側で、メッセージの送信元のIDを見て関連付けたメールアドレスにメール送信します。
メール送信は goからやろうとしたのですが、手元に自由に使えるメール送信サーバー(SMTPサーバー)がなかったので
第一弾では、Googole App Script (GAS)のメール送信関数を使ってメールを送らせることにしました。
システム構成 ver2
Ver2は、自分用ではなく、みんなが使えるように改造しました。
GASだと、メール送信部が、わたしのgmailから送信となってしまうのと1日の枠があるので、ver2からはメール送信部を改修しました。
Sender Grid というメール配信サービスを利用させていただきました。
ここからだと無料で、独自ドメインからでもかなり多くのメールアドレスを送れます。
少し審査がありましたが、メールに色々画像を貼り付けて、ドメインが自分のものと主張しましたw
また、LINE IDとメールアドレスを突き合わせるデータベースに、Google Fire Store を利用しました。
終わりに
ということで、自分のほしいものがこの世にない!
という時に役立つプログラミングでした。
LINE Messaging API
go言語 + Google Cloud Functions(サーバーレス)
Google Fire Store (リアルタイムデータベース)
GAS スクリプト
Sender Grid(クラウドメール配信サービス)
と、モダンな開発にチャレンジして無事成功しました。
また、自分だけでなくても使えるようにしていますので、試しに使ってみたいという方はご一報ください。
ではでは!