概要
以下の記事を参照
本記事について
上記記事にてフレンドのログインを監視するところまで作成しているので、
本記事では通知の種類やサンプルコードを記載します。
メール通知
1つめはメールにて通知を行う方法を紹介します。
今回使用するシステムはSendGridです
こちら、クラウドタイプのメール配信サービスで初回会員登録に承認が必要ですが、
無料プランでもある程度の件数のメールを送ることができるサービスです。
今回記載するスクリプトは以下環境にて動作させています。
----環境----
OS : Linux
Apacheバージョン : 2.4.6
PHP : 7.4.13
今回はcURLを使用してapiをpostする方法でメールを送ります。
※SendGrid公式ライブラリを使用する場合の方法はSendGrid公式に記載されています
<?php
$url = 'https://api.sendgrid.com/';
$sendgrid_apikey =SendGridのAPIキー;
$mail_address = "送信先のメールアドレス";
$FILE = 'tmp_players.txt';
$BOARD = json_decode(file_get_contents($FILE));
$params = array(
'Authorization: Bearer' => $sendgrid_apikey ,
'to' => $mail_address,
'subject' => "監視対象ログイン通知",
'html' => "
以下お友達がログインしました
<br /> ".$BOARD.
"早く会いに行きましょう",
'from' => 'vrclogintest@monitoring.jp',
);
$request = $url.'api/mail.send.json';
if (!defined('CURL_SSLVERSION_TLSv1_2')){
define('CURL_SSLVERSION_TLSv1_2', 6);
}
// カールリクエストを生成する
$session = curl_init($request);
// SSLv3を使用しないようにPHPに指示します(代わりにTLSを選択します)
curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_setopt($session, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $sendgrid_apikey));
// CurlにHTTP POSTを使用するように指示します
curl_setopt ($session, CURLOPT_POST, true);
// これがPOSTの本文であることをcurlに伝えます
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
// Curlにヘッダーを返さないように指示しますが、応答を返します
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// レスポンスを得る
$response = curl_exec($session);
curl_close($session);
?>
通知メールが来ることでログインしたことが分かるので早く会いに行きましょう
デスクトップ通知
上記メールでの通知ですが、常に監視するためのLinuxサーバーが必要です。
PCを起動していないとログインの通知が来てもすぐにログインはできないので、
常にPCを起動しておく場合はデスクトップに通知を飛ばしたほうがいいですよね。
ということで、次にデスクトップに通知を飛ばす方法を以下にて解説します。
今回はplyerモジュールを使用します。
今回記載するスクリプトは以下環境にて動作させています。
----環境----
OS : Windows
Python : 3.8.8
Anaconda version : 4.10.1
plyer : 2.0.0
from plyer import notification
user_file = open("tmp_players.txt", mode='r',encoding='utf-8')
user_data = user_file.read()
user_file.close()
notification.notify(
title = "監視対象ログイン通知",
message=user_data + "\nがログインしています\n\n早く会いに行きましょう",
timeout=5
)
こちらを一定時間ごとに自動実行することで常にログイン動向を確認することができるので
ログイン通知が飛んで来たら早く会いに行きましょう
終わりに
これは友達を監視ではなく見守るのための技術紹介記事なので
変なことに使用しないようにしましょう
あくまで友達を見守りたい人向けです...