LINEにメッセージが届いたら指定のメアドに通知する(その2)

はじめに

  • 先日ポストした『LINEにメッセージが届いたら指定のメアドに通知する』のその2となります。
  • LINE → IFTTT → Webhooks → Zapier → Gmail、の流れになります。
    前回は、LINE → IFTTT → Gmail、でした。
    Google から、『IFTTTとGmailの連携やめるよ』メールが届いたため、更新します。
  • 本TipsはAndroid専用です。
    iPhoneの場合、現物で試したわけではないのですが、Macがあれば次の方法で行けると思います。
    PushBulletのMac版が公開、iOSの通知をMacで受信可能&クリップボードも同期が可能に
  • 普通に検索で引っかかる、『メールが来たらLINEに通知』とは逆の、『LINEが来たらメールする』機能の実現です。
  • 動作タイミングは各構成要素のご機嫌次第です。
    通知が数時間遅延する、或いは全く届かない場合があります。
    あくまで、『無いよりはまし』程度の扱いにてお願いします。

今回の実装

LINE NEWS からメッセージが届いたら、設定したメールアドレスに通知する例を記します。最初は『LINE NEWS』で試したあと、実際に検知したい友達名に変更して下さい(IFTTT設定の9番と17番)。
本作業はWindows10なPC上で行いました。

Zapier側の設定

  1. Zapier にログイン
  2. 右上の、Make a Zap! をクリック
  3. Search hundreds of apps…webhooks と入力し、選択された Webhooks by Zapier をクリック
  4. Catch Hook をクリック
  5. Save + Continue をクリック
  6. リンク用のURLが表示されるので、コピーボタンを押して、URLをコピー、別に記録しておく
  7. 管理者権限の PowerShell 窓を開いて、
    Invoke-RestMethod -Uri "先程のURL" -Method Post -Body ( @{"value1"="LINE NEWS"} | ConvertTo-Json) -ContentType 'application/json'
    を実行
  8. 数秒待って、Ok, I did this をクリック
  9. Hook A と表示されたら、Continue をクリック
  10. Add a Step をクリック
  11. Action/Search をクリック
  12. Gmail を選択
  13. Send Email をクリック
  14. Save + Continue をクリック
  15. 使用する Gmail アカウントを選択して、Test をクリック、Success となったら、Save + Continue をクリック
  16. To 欄に、宛先のメアドを入力
  17. Subject 欄に、通知メールの題名を適当に入力
  18. Body 欄で、右側の+をクリック、value1 を選択、『から連絡がありました』と入力
  19. Continue をクリック
  20. テスト画面になるので、Send Test to Gmail をクリック
  21. 設定した通知先にメールが届いたら、Finish をクリック
  22. YOUR ZAP IS ON となっていれば、完了

IFTTT側の設定

  1. IFTTT にログイン
  2. My Applet に移動
  3. Applets タブを選択
  4. New Applet をクリック
  5. this をクリック
  6. Search services 欄に android device と入力し、選択されたサービスボタンをクリック
  7. Choose triggerNotification received from a specific app ボタンをクリック
  8. App nameLINE と入力
  9. Filter by notification keyword に『LINE NEWS』と入力
  10. Create trigger をクリック
  11. that をクリック
  12. Choose action service 欄に webhooks と入力し、選択されたサービスボタンをクリック
  13. Make a web request をクリック
  14. URL 欄に、先程コピーした Webhooks のURLをペースト
  15. MethodPOST を選択
  16. Content Typeapplication/json を選択
  17. Body 欄に
    {"value1":"LINE NEWS"}
    と入力
  18. Create action をクリック
  19. Review and finish 画面で、If Notification… の欄を、適当な名前に変更
  20. Finish をクリック

※Zapier の Gmail設定画面(Edit Template)で、+が表示されている各フィールドには、IFTTT から投げ付ける json の値が使えます。


2019.03.26
iPhone版についての記述を追加
2019.05.29
引っ掛ける友達名についての説明を更新

GCPにPandora FMSを入れてみるテスト

本コンテンツの内容は2019年3月現在の情報を元にしています。

前提条件

  • GCP(Google Cloud Platform)のアカウントを作成済みのこと
  • プロジェクト名を適当に作成済みのこと
  • Tera Termを使っていること
  • FQDNでアクセスする場合は、DNSサーバへのレコード登録が出来ること

Tera Term でSSH鍵を作成

※既に鍵を持っている場合は、ここはパスして構いません
※ここで鍵を作成するときのWindowsログイン名が、後程作成するVMのログイン名になります

  1. Tera Term のメニューから『設定』→『SSH鍵生成』
  2. 『生成』
  3. 鍵の種類は『RSA』ビット数は『2048』で、『生成』
  4. パスフレーズは空のままで
  5. 『公開鍵の保存』で任意の場所に公開鍵を保存
    ファイル名はデフォルトの場合、id_rsa.pub
    この公開鍵をあとでVMに突っ込みます
  6. 『秘密鍵の保存』で任意の場所に公開鍵を保存
    ファイル名はデフォルトの場合、id_rsa
    この秘密鍵をあとで Tera Term で使います

固定IP取得

  1. GCPのコンソールを開く
  2. 左上の三本線(ナビゲーションメニュー)をクリック
  3. ネットワーキング→VPCネットワーク→外部IPアドレス
  4. 『+静的アドレスを予約』
  5. 名前を適当に設定
  6. 『標準』『IPv4』『リージョン』を選択
  7. リージョンは『asia-northeast1』
  8. 『予約』

FQDNで使う場合は、取得したIPアドレスを利用しているDNSに登録ください

VM作成

  1. GCPのコンソールを開く
  2. 左上の三本線(ナビゲーションメニュー)をクリック
  3. コンピューティング→Compute Engine→VMインスタンス
  4. 『+インスタンスを作成』
  5. 名前は適当に
  6. リージョンは『asia-northeast1』
  7. ゾーンとマシンタイプはそのまま
  8. ブートディスクの『変更』
  9. 『CentOS7』『標準の永続ディスク』『20GB』で『選択』
  10. ファイアウォールで『HTTPトラフィックを許可する』
  11. 『作成』
  12. 起動したVM名をクリックし、『VMインスタンスの詳細』で『編集』
  13. ネットワークインターフェースの鉛筆マークををクリック
  14. 外部IPに、先程作成した固定IPを選択し、『完了』
  15. 少し下の『SSHキーが0個あります』の『表示して編集する』
  16. 『認証鍵全体を入力』フィールドに、公開鍵をコピペ
    鍵が有効な場合、ログイン名が鍵フィールドの左側に表示されます
    この名前でVMにログインすることになります
  17. 『保存』

Tera Term にホストを登録

  1. 管理者権限でコマンドプロンプトを開き、teraterm.ini をノートパッドで開く
  2. [Hosts]セクションに、Hostを追加(Host番号は適当に編集下さい)
    Host1=VMのIPまたはFQDN /ssh /auth=publickey /user=公開鍵内のログイン名 /keyfile=path\id_rsa /KR=UTF8 /KT=UTF8

VM内での作業

Tera Term でVMに公開鍵認証なSSHで接続し、sudo su – でrootになってください。

# SELinux無効化
setenforce 0
vi /etc/sysconfig/selinux
# 7行目 変更
SELINUX=disabled 
# 保存してvi終了

# タイムゾーンを変更
timedatectl set-timezone Asia/Tokyo
# Apache登録
yum -y install httpd
# ウェルカムページ削除
rm -f /etc/httpd/conf.d/welcome.conf
vi /etc/httpd/conf/httpd.conf
# 86行目 管理者アドレス指定
ServerAdmin root@foo-bar.com
# 95行目 サーバー名設定
ServerName pandora.foo-bar.com:80
# 151行目 変更
AllowOverride All
# 164行目 変更
DirectoryIndex index.html index.php
# 最終行に追記
ServerTokens Prod
KeepAlive On
# 保存してvi終了
# Apache起動/自動起動設定
systemctl start httpd
systemctl enable httpd

# /var/www/html に適当なファイルを置いて、httpdの動作を確認
# 確認後テストファイルは削除下さい

# IPアドレス制限(可能であれば何らかの方法で制限しておいた方が良いと思います)
# 先程アクセスしたIPアドレスを確認
cat /var/log/httpd/access.log
vi /etc/httpd/conf/httpd.conf
# 104行目 追加(Requireの方が良いかも)
Allow from localhost
Allow from 先程のIPアドレス
Deny from all
# 保存してvi終了
systemctl restart httpd

# PHP7.2のインストール
# epelリポジトリとremiレポジトリのインストール
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# PHPのインストール
yum -y install --enablerepo=remi,remi-php72 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-zip php-pecl-zip php-ldap php-snmp
# php.iniの編集(ファイルのバージョンにより、各行の位置は微妙に変わる筈)
vi /etc/php.ini
# 902行目 変更
date.timezone = "Asia/Tokyo"
# 1509行目 変更
mbstring.language = Japanese
# 1516行目 変更
mbstring.internal_encoding = UTF-8
# 1524行目 変更
mbstring.http_input = UTF-8
# 1534行目 変更
mbstring.http_output = pass
# 1542行目 変更
mbstring.encoding_translation = On
# 1547行目 変更
mbstring.detect_order = auto
# 保存してvi終了
# Apache再起動
systemctl restart httpd
# PHP動作確認
echo '<?php phpinfo(); ?>' > /var/www/html/info.php
curl http://localhost/info.php | grep 'PHP Version' | tail -1 | sed -e 's/<[^>]*>//g'
# PHP Version が表示されることを確認すること
rm -f /var/www/html/info.php

# MariaDBインストール
yum -y install mariadb-server
vi /etc/my.cnf.d/server.cnf
# 13行目 追加
character-set-server=utf8
# 保存してvi終了
# MariaDB起動/自動起動設定
systemctl start mariadb
systemctl enable mariadb
systemctl restart httpd
# MariaDB初期設定
mysql_secure_installation
# 最初に聞かれるパスワードはそのままEnter
# Set root password? で y
# パスワードを適当に設定(記録しておいてください)
# 残りの設問は全て y

# Pandoraインストール
# 次のような流れになります
#  ①パッケージインストール
#  ②インストーラ実行(初期設定)
#  ③confファイルの設定
#  ④pandora_server 起動
#
vi /etc/yum.repos.d/pandorafms.repo
# 以下の内容を追加
[artica_pandorafms]
name=CentOS7 - PandoraFMS official repo
baseurl=http://firefly.artica.es/centos7
gpgcheck=0
enabled=1
# 保存してvi終了
yum -y install pandorafms_console pandorafms_server bind-utils
systemctl restart httpd

# localhostからのMariaDBへのアクセス権を設定する
# これをやっておかないと、Pandoraインストーラが完走しません
mysql -u root -p
# パスワードは先程設定したもの
grant all privileges on *.* to root@localhost identified by '先程のパスワード' with grant option;
flush privileges;
exit;

# Pandora初期設定
# http://IPまたはFQDN/pandora_console/ にアクセス
# Step1 『Next』
# Step2 『Yes』
# Step3 『Next』
# Step4 DB Password に先程設定したパスワードを入力し、『Next』
# Step5 A new random password has been generated: に表示されているパスワードを記録し、『Next』
# ※パスワードを忘れた時は、Step4の『Drop Database if exists』にチェックを入れて再試行
# Step6 『Yes』
# 一旦ブラウザを閉じます

# confファイルの設定
vi /etc/pandora/pandora_server.conf
# 59行目 編集
dbpass Step5で提示されたパスワード
# 保存してvi終了

# Pandora Server 起動
/etc/init.d/pandora_server start

http://IPまたはFQDN/pandora_console/ にアクセス
左側のCommunity edition のIDにadmin、パスワードにpandoraでログイン

メール発報を行いたいとき

  1. Postfix設定
    https://www.server-world.info/query?os=CentOS_7&p=mail&f=1
    の『574行目:追記』まで実行
  2. /etc/pandora/pandora_server.conf の 234行目を有効化
  3. SendGridの設定
    https://qiita.com/ariaki/items/e389cc3dce549f450e3b
    にて外部へのメール送信を実装
  4. postfix と pandora_server をリスタート