エンジニアだってモテてみたい!LINEで彼女へのサプライズを自動化した結果
LINEでサプライズメッセージを送ろう!
毎月の月記念日にLINEでメッセージが自動的に送られてくるプログラムを書きました!
これで「俺たちが付き合ったのっていつからだっけ?」と忘れることも無くなります! (なし崩し的に付き合い、記念日がわからないケースは非対応です)
既婚者の方なら「結婚記念日」、独り身の方でも「新しい挑戦を始めた日」など発想一つで応用が効くと思います。
また、非エンジニアにとって、「LINEにメッセージを送れる」というだけですごいエンジニアに思えるようです。うちの親がそう言ってました。意外ですよね。API叩くだけなのでコスパ最強です。
実際に送ってみよう!
コードの構成はこのようになっています!
①LINE NotifyのAPIキーを設定 ②文面を作成 ③curlを使ってLINE NotifyのエンドポイントにHTTPリクエストを飛ばす
スタンプはランダムで選ばれるようにしています。 スタンプの番号はLINEの公式ページに書かれています。
ちなみに、毎年の記念日には、文面がちょこっと変わります。
LINE NotifyのAPIキーを取得
トークルームごとにAPIキーが発行されます。こちらから取得しに行きましょう。
(注)相手と自分の二人きりのトークルームには送信することができません。 LINE Notifyをトークルームに招待することで、新しいトークルームが作成されます。 そのトークルームのAPIキーを取得しましょう!
<?php
date_default_timezone_set('Asia/Tokyo');
// トークルームを指定
$url = 'https://notify-api.line.me/api/notify';
$token = '取得したAPIキーを設定';
// 記念日を入力
$start = strtotime('0000-00-00');
// 今日の日付
$date = new Datetime();
$today = strtotime($date->format('Y-m-d'));
// 日数計算
$diff = (($today - $start) / 86400);
$year = floor( $diff / 365);
$date = $diff % 365;
// スタンプの番号を指定
$stamps = array(
'608', // プレゼントボックス
'301', // カクテル
'269', // ハート
'268', // 虹
);
// スタンプをランダムに選択
$stamp_key = array_rand($stamps, 1);
if($date !== 0){
$message = PHP_EOL
. '🎉おめでとう🎉' . PHP_EOL
.'二人が付き合ってから' . PHP_EOL
. $diff .'日が経ちました😍' . PHP_EOL
. '今日で' . $year . '年と' . $date . '日です💕' . PHP_EOL
. 'これからもよろしくね😘';
} else {
$message = PHP_EOL
. '🎉おめでとう🎉' . PHP_EOL
.'二人が付き合ってから' . $diff .'日が経ちました💕';
$message .= PHP_EOL
. $year . '年も続くなんてすごい!' . PHP_EOL
. 'これからもよろしくね😘';
}
// 送信情報を設定する
$data = array('message' => $message, 'stickerPackageId' => 4, 'stickerId' => $stamps[$stamp_key]);
$data = http_build_query($data);
$header = array(
'Content-Type: application/x-www-form-urlencoded',
'Authorization: Bearer ' . $token,
);
// curlでLINE NotifyのエンドポイントにHTTPリクエストを送る
$ch = curl_init($url);
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $header,
CURLOPT_POSTFIELDS => $data,
);
curl_setopt_array($ch, $options);
$info = curl_getinfo($ch);
$response = curl_exec($ch);
curl_close($ch);
cronを設定
0 0 記念日 * *
cronは左から分 時 日 月 曜日
です。
これで12時ちょうど、日付が記念日に変わった瞬間にLINEが届きます。
cronの設定についてはcronの設定方法をご参照ください。
ただし、相手の生活リズムに合わせて時間を変更しましょう。 思いやりも大切です。
実行した結果
彼女が喜んでくれました(笑)
自分でもこれが送られてくるのを忘れていて12時前に寝たため、翌朝起きてビックリしたことがあります。
(今では当時の彼女は奥さんになりました)
それでは楽しいLINE lifeを!
以上、プログラミングをするパンダ(@Panda_Program)でした。
Happy Coding 🎉