さて、前回とその前で、「ランダムな言葉をPOST」と、「時報をPOST」の方法を会得しました。
次はその2つを組み合わせてみます。
つまり「時報を含むランダムな言葉をPOST。」
2件のソースを見た目上ほぼ同じ使い方をすると、こうなります。
<?php $message = date($mes[rand(0, 4)]); $params = "status=". rawurlencode($message); $result = file_get_contents($url.$params , false, stream_context_create(array( |
「$mes[0~4]」に文字列を入れるのはOKかと思われます。
で、このあとなんですが、そのまま「$message」に入れるのではなく、dete関数を使って返却された文字列を入れます。
こうすることによって、文字列のGの部分には時刻が入るというわけです。
http://twitter.com/rishitest/status/1773178421
さてここでひとつ補足ですが、date関数を使うと、date関数で置き換えられる文字はすべて日付や時間に置き換えられてしまいます。
例えば、以下のプログラム。
<?php $message = date($mes[rand(0, 4)]); $params = "status=". rawurlencode($message); $result = file_get_contents($url.$params , false, stream_context_create(array( |
いちいち、MySweetHoneyって言わないと気がすまないとします。
しかしこれを実行すると、
http://twitter.com/rishitest/status/1773334100
文字が置き換えられまくって、悲惨な結果に…。
そうならないようにしたのが下のソースです。
<?php |
これはまず最初に変数「$hour」に時刻を入れてしまってから、それを文字列連結させたものをそのまま「$message」に入れるという手順です。
「$mes[0~4]」をdate関数に入れることはないので、「MySweetHoney」はちゃんとそのまま出力されます。
http://twitter.com/rishitest/status/1773359071
めでたし。
こんなかんじで、いろんな書き方ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php |
これで、「今は10時です。」「今は18時です。」などと、いまの時刻をPOSTしてくれるプログラムになりました。
http://twitter.com/rishitest/status/1773024339
date関数は、文字列の中でGがあったらそこに時刻の時間部分を当てはめて、文字列ごと返却してくれる関数です。便利です。
ちなみにGだと「先頭に 0 をつけない24時間単位 (0 ~ 23) の時間」ですが、同じように分とか、日付とかも設定することができます。
date関数については、こちらを参考にさせていただきました。
たとえばこれを1時間ごとに実行するようにすると、時報なbotちゃんの出来上がりです。
<?php $result = file_get_contents($url.$params , false, stream_context_create(array( |
ソースはこんなかんじ。引き続き引用させていただいています。→参照元
これを定期的に作動させればbotになるというわけです。
しかし、これだと、「テストです。」しか発言しないbotになってしまいます。
それはあんまりなのでメッセージ内容を何種類かの言葉からランダムに選んでPOSTするというふうに変えたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php |
ソースの変更点は、14行目において、メッセージを直接入れるのではなく、変数「$message」にしているところです。
そして、その上の追加した行で「$message」の中身を決定しています。
6行目~10行目で、$mes[0~4]にそれぞれ異なる文字列をいれておきます。
12行目で、「rand(0. 4)」とありますが、これは、0~4までのどれかの数値をランダムで返却する関数です。
従って、この場合実際には、
「$message = $mes[0];」や、「$message = $mes[3];」などという処理を行うということになり、つまりは「$message」に"おはよう。"や"こんばんは。"という文字列が入ります。
これを14行目でセットすることにより、"おはよう。"~"おやすみなさい。"の中からひとつをランダムにチョイスしてtwitterにPOSTを行うプログラムになりました。
http://twitter.com/rishitest/status/1772884964