【Twitter API】PHPで自動的にツイートをいいね(favorite)をする方法

こんにちは。

今回は、PHPを使ってTwitterのツイートを自動的にいいねしてくれる本格的なbotを作る方法を紹介します。

スポンサーリンク

事前準備

(1) Twitter Appにアクセスします。リンク: https://apps.twitter.com/

(2) [Create New App]で新規アプリを作ります。

(3) 以下の、各種Keyを入手します。

・Consumer Key (API Key)

・Consumer Secret (API Secret)

・Access Token

・Access Token Secret

(4) 余裕があったらTwitter API documentを理解する。

PHPでTwitter APIを使えるようにする

今回はTwitteroauthというPHP向けのライブラリを使いますが、

「HTTPリクエストくらい自分で書くわ!!」

って人は別にこのライブラリを使う必要はないと思います。

インストール方法は簡単で、

https://github.com/abraham/twitteroauth

からダウンロードします。

インポートできればどこに置いてもいいのですが、

私の場合はたくさんTwitter APIを使ったアプリを作ろうと思っているので、

ディレクトリの構成を

Twitter / abraham / twitteroauth

というふうに設置して、

Twitter / apps / ソースコードのファイル名

というふうに自分で書いたコードを保存しました。

実際にPHPコードを書いていく

はじめにcommon.phpというファイルを作ります。

defineを二つのブロックに分けて使っています。

一つ目のブロックはTwitter APIを操作するためのKeyを定義する部分で、さきほど(1)で取得したKeyのことです。

二つ目のブロックはMySQLデータベースにアクセスするために必要な情報です。

(今回はデータベースは使用しないので、二つ目のブロックを作る必要はないです。)

common.phpに関しては、他にもTwitter APIを使ってアプリを作るつもりの人は、

Twitteroauthライブラリをインストールした時と同じように共通したディレクトリを作ることをオススメします。

必要なものを読み込む

次にコードを書くにあたって必要になるものを読み込みます。

require_once()を使ってtwitteroauthライブラリと先ほど書いたcommon.phpを使えるようにします。

3行目のuseですが、これはtwitteroauthライブラリのTwitterOAuth()クラスを使うために必要です。

メイン処理を書く

まずはソースコード全体です。

全体の流れとしては、

1. 先ほど説明した(4)のように必要なものをインポートする

2. 処理に必要な関数を二つ作る(1つ目)

3. 処理に必要な関数を二つ作る(2つ目)

4. それらの関数を実行する

という流れになっています。

2と3について順に説明していきましょう。

処理に必要な関数を二つ作る(1つ目)

まずはsearchTweet()という関数を作ります。

この関数は引数が0個で、戻り値はAPIで取得したツイートのIDを格納した配列を返します。

リソースのURLは

「https://api.twitter.com/1.1/search/tweets.json」

です。

twitteroauthライブラリのTwitterOAuth()を使って検索に引っかかったツイートたちを取得しています。

今回はツイートを検索によって取得していますが、

検索以外にもある特定の人のツイートをだけを取得するなどのように、

いいねをするツイートの取得方法については好きなようにして問題ありません

12行目からは、twitteroauthライブラリからTwitterOAuthオブジェクトを生成しています。

このオブジェクトのOAuthRequest()を使うことによってAPIを叩いています。

OAuthRequest()の引数は

・APIのURL(https://api.twitter.com/1.1/search/tweets.json)

・リクエストメソッド(GET)

・パラメータの配列( array(q => 検索クエリcount => 取得するツイート数) )

という風になっています。

14.19行目では、json_decode()で取得したツイートたちの各IDを取り出して配列にしています。

ちなみにjson_decode()の第二引数をtrueにすることによってjsonを連想配列に変換してくれます

そして最後に、このID配列を返しています。

処理に必要な関数を二つ作る(2つ目)

次にfavoriteTweet()という関数を作ります。

これは引数としてツイートIDの配列を受け取ります。

foreach()を使ってIDを一つづつ配列から取り出して、

その取り出したIDのツイートをいいねするいう処理を繰り返します。

今回はURLが

「https://api.twitter.com/1.1/favorites/create.json」

リクエストメソッドが

「POST」

パラメータ配列はIDのみとなっています。

これらの情報元に、

先ほどと同じようにOAuthRequest()を使ってTwitter APIを叩いて一つ一ついいねしていきます。

関数を実行する

47行目以降がメイン処理となっています。

まずは

$id_array = searchTweet();

によって$id_arrayに取得したツイートのIDを格納していき、

favoriteTweet($id_array);

でID配列に入っているIDのツイートをいいねしていきます。

関数を作るとコードが簡単になり、テストやメンテナンスもしやすくなるのでオススメです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする