記事一覧
Topに戻る
  • TOP
  • Google Apps Script
  • エンジニアだってモテてみたい!LINEで彼女へのサプライズを自動化した結果

エンジニアだってモテてみたい!LINEで彼女へのサプライズを自動化した結果

更新日:

by @Panda_Program

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 🎉