旅行に行けなくて寂しさで死ぬ。毎朝LINEに外国の電車の写真が送られてくるアプリを作ったら少し気分がマシになるかもしれない!頭を使わずコピペコードで作るというこのコーナー(ひどすぎ) LINE Notifyは日本でやってる人が多いから…
こちらが出来上がったものです(クッキング)
流れ
- Line notifyを登録
- PHPで書く
- バッチ(Cron)
2はPythonとかRubyでもいいと思う。なんでもいい。
Line Notifyサービス登録
細かいことはググれば出た。
LINE Notifyの使い方(PHPコードを例に) – Qiita
ログイン
右上の自分の名前→登録サービス管理
サービスを登録する。
できた。
トークンを発行
サービス登録後にLINE Notifyに「TOKEN発行」ボタンがでてくる。
(TOKENをコールバックで取得する方法もあるらしいけど、ブラウザぽちぽちの方が楽。)
ユーザ連携
連携する (qiitaみて)
Notify実行
文字だけで通知するか確かめる
最初に挙げたQiitaのソースコードコピペで文字だけはできた。
「おらー」
写真をいれる
写真をぶちこみたいので別のソースコードコピペした。
LINE Notifyの使い方を解説!アクセストークンを使ってメッセージを送信しよう | Aprico
→写真1枚だけならここをコピペでいける。
テスト用ぴよ。
日替わりにする(ランダム)
写真が1種類しか無いのは物足りないので、
毎日違う写真が出るようにした。
ファイルサーバーに
- start.php (名前はなんでもいいけど今回のメインのやつ)
- 0.png
- 1.png
- 2.png …
(適当に気に入ってるのを23枚)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
<?php define('LINE_URL' , "https://notify-api.line.me/api/notify"); define('LINE_TOKEN', 'TLD3irIGy7UXHMqbOdSeNgTder0KW4bC8F8oBut8eqP'); //ランダムで数をだす $randnum = mt_rand(0,23); //写真の説明 makecaption $caption = makecaption($randnum); //メイン起動 キャプションと乱数を引数 notify($caption,$randnum); function notify($message,$randnum){ $fileName = makefilename($randnum); $ext = substr($fileName, strrpos($fileName, '.') + 1); // 画像取得 $fileHandle = fopen("./{$fileName}", "rb"); //絶対パスじゃないとエラーが出るサーバーもある。 $fileContents = stream_get_contents($fileHandle); fclose($fileHandle); $boundary = "---------------------".substr(md5(rand(0,32000)), 0, 10); $data .= "--{$boundary}\r\n"; $data .= "Content-Disposition: form-data; name=message\r\n\r\n{$message}\r\n"; $data .= "--{$boundary}\r\n"; $data .= "Content-Disposition: form-data; name=\"imageFile\"; filename=\"{$fileName}\"\r\n"; $data .= "Content-Type: image/{$ext}\r\n"; $data .= "\r\n"; $data .= $fileContents; $data .= "\r\n--{$boundary}"; // 終端 $data .= "--{$boundary}--\r\n"; $options = array( 'http'=>array( 'method'=>'POST', 'header'=>"Authorization: Bearer " . LINE_TOKEN . "\r\n" . "Content-Type: multipart/form-data; boundary={$boundary}", 'content' => $data ) ); $context = stream_context_create($options); file_get_contents(LINE_URL, false, $context ); } //ファイル名つくる(関数に分ける意味は今回は薄) function makefilename($randnum){ $png = $randnum.".png"; return $png; } //キャプション用 写真のファイル名と合わせる function makecaption($randnum){ $captionlist = array( "VL10", "VL10", "VL11", "2TE10", "トルコ", "VL8", "T3", "VL8", "ロンチキ", "EP1P", "ER2K", "アプシェロンスク", "KTM5", "RZV", "KTM5", "VL10", "ヤスド", "南回線", "ヤスド", "KTM5", "ゲンコツ", "カルス", "イラン"); $caption = $captionlist[$randnum]; return $caption; } ?> |
xxx.com/xxx/xxx/xx/start.php を叩くとキャプション+写真が出るようになる。
start.phpを手動でバシバシたたけば行ける。(サービス登録のとき[bird]にしてたから残ったけどロシア的施工を目指しているので細かいことは直さない(ひどすぎ))
自動で出るようにする(毎朝6時)
素手でphpファイルを叩いててもアホくさいので自動にする。
x serverではcronが簡単に使えるのでそれを使用。朝6時10分に設定。社畜のワイこれで目覚めが良くなるはずた!(※労働を辞めた方がよほど目覚めがよくなります)
毎日6時10分に出るようにした。日、月は設定無しなので*
- 分10
- 時間 6
- 日*
- 月*
- 曜日*
コマンドは「phpの場所」「ファイルの場所」
※Cronで叩くとファイル名が相対パスで何故か通らないのでそのときは/home/xxx/xxx/1.jpg にしとく。(cron実行時にメールが飛ぶようにしておいた方がメールでエラー内容が出るので良い。むしろメールとばないと何が何だか分からない)
おまけ
WhatsApp版の自動送信できるのもあるね。
How To Send a WhatsApp Message in 30 Seconds with PHP – Twilio
[超簡単]LINE notify を使ってみる – Qiita
【使ってみた】LINE Notifyを使ってトークルームにメッセージ送信 | ホームページ制作 大阪 SmileVision