2019年6月21日こんにちは。今回は、PHPを使ってTwitterのツイートを自動的にいいねしてくれる本格的なbotを作る方法を紹介します。Appにアクセスします。App]で新規アプリを作ります。以下の、各種Keyを入手します。documentを理解する。「HTTPリクエストくらい自分で書くわ!!」って人は別にこのライブラリを使う必要はないと思います。インストール方法は簡単で、https://github.com/abraham/twitteroauthからダウンロードします。ソースコードのファイル名というふうに自分で書いたコードを保存しました。実際にPHPコードを書いていくはじめにcommon.phpというファイルを作ります。"パスワード");?>defineを二つのブロックに分けて使っています。APIを操作するためのKeyを定義する部分で、さきほど(1)で取得したKeyのことです。二つ目のブロックはMySQLデータベースにアクセスするために必要な情報です。(今回はデータベースは使用しないので、二つ目のブロックを作る必要はないです。APIを使ってアプリを作るつもりの人は、Twitteroauthライブラリをインストールした時と同じように共通したディレクトリを作ることをオススメします。必要なものを読み込む次にコードを書くにあたって必要になるものを読み込みます。TwitterOAuth;?>require_once()を使ってtwitteroauthライブラリと先ほど書いたcommon.phpを使えるようにします。3行目のuseですが、これはtwitteroauthライブラリのTwitterOAuth()クラスを使うために必要です。メイン処理を書くまずはソースコード全体です。それらの関数を実行するという流れになっています。2と3について順に説明していきましょう。処理に必要な関数を二つ作る(1つ目)まずはsearchTweet()という関数を作ります。$id_array;}?>この関数は引数が0個で、戻り値はAPIで取得したツイートのIDを格納した配列を返します。リソースのURLは「https://api.twitter.com/1.1/search/tweets.json」です。twitteroauthライブラリのTwitterOAuth()を使って検索に引っかかったツイートたちを取得しています。検索以外にもある特定の人のツイートをだけを取得するなどのように、いいねをするツイートの取得方法については好きなようにして問題ありません。12行目からは、twitteroauthライブラリからTwitterOAuthオブジェクトを生成しています。このオブジェクトのOAuthRequest()を使うことによってAPIを叩いています。)という風になっています。14.19行目では、json_decode()で取得したツイートたちの各IDを取り出して配列にしています。ちなみにjson_decode()の第二引数をtrueにすることによってjsonを連想配列に変換してくれます。最後に、このID配列を返しています。処理に必要な関数を二つ作る(2つ目)次にfavoriteTweet()という関数を作ります。これは引数としてツイートIDの配列を受け取ります。$parameter);}return;}?>foreach()を使ってIDを一つづつ配列から取り出して、その取り出したIDのツイートをいいねするいう処理を繰り返します。今回はURLが「https://api.twitter.com/1.1/favorites/create.json」リクエストメソッドが「POST」パラメータ配列はIDのみとなっています。APIを叩いて一つ一ついいねしていきます。関数を実行する47行目以降がメイン処理となっています。searchTweet();によって$id_arrayに取得したツイートのIDを格納していき、favoriteTweet($id_array);でID配列に入っているIDのツイートをいいねしていきます。関数を作るとコードが簡単になり、テストやメンテナンスもしやすくなるのでオススメです。