ツイッター API の、アプリケーション認証 (app auth) を使うと、15分あたりのAPI利用上限を、ツイート検索が 180回 から 450回 に、タイムライン取得は 180回 から 300回 に増やすことができます。ツイート探索系のアプリを作るのには、ちょっと嬉しい仕組みですね。
そこで今回は、PHP から Twitter API アプリケーション認証を行い、ツイート検索をする方法をご紹介したいと思います。また、簡単にアプリケーション認証ができる PHPライブラリも作ってみました。もしよければお試しください。
記事内に記載している APIの利用上限回数は、2015年6月11日時点のものです。最新の情報は、下記公式サイトでご確認ください。
▽ Rate Limits: Chart | Twitter Developers
https://dev.twitter.com/rest/public/rate-limiting
Twitter Developers に アプリケーションを登録
Twitter Developers サイトで、アプリケーションを登録します。ユーザ認証を使う場合でも、アプリケーション認証を使う場合でも、登録方法は同じです。
アプリケーションの登録方法は、Syncerブログを参考にさせて頂きました。とても分かりやすい記事ですね(^^)
▽ Twitter APIで、アプリケーションを登録する方法 | Syncer
http://syncer.jp/twitter-api-create-application
アプリケーションの登録が終わったら「Consumer Key (API Key)」と「Consumer Secret (API Secret)」を、他人に知られないように、メモしておきましょう。
※アプリケーション認証には「Access Token」と「Access Token Secret」は必要ありません。
ツイート検索API の PHPプログラムの作成
アプリケーション認証を行い、ツイート検索APIを使ってみます。
アプリケーション認証用の、PHPライブラリをダウンロードします。ページ右下の「Download ZIP」からダウンロードできます。(手前味噌でスミマセン)
https://github.com/sizaki30/TwitterAppOAuth
ツイート検索プログラムを作成します。メモをしておいた「Consumer Key (API Key)」と「Consumer Secret (API Secret)」を設定してください。
vim tweet_search.php
<?php require_once('TwitterAppOAuth.php'); // Consumer Key (API Key) を設定 $consumer_key = '***'; // Consumer Secret (API Secret) を設定 $consumer_secret = '***'; // アプリケーション認証実行 $connection = new TwitterAppOAuth($consumer_key, $consumer_secret); // ツイート検索パラメータの設定、「q」は検索文字列 $params = array( 'q' => '焼肉定食' ); // ツイート検索実行 $tweets_obj = $connection->get('search/tweets', $params); // オブジェクトを配列に変換 $tweets_arr = json_decode($tweets_obj, true); // ツイートの表示 for ($i = 0; $i < count($tweets_arr['statuses']); $i++) { echo $tweets_arr['statuses'][$i]['text'] . "\n----------\n"; }
最後に、作成したプログラムを、実行してみましょう。
$ php tweet_search.php 月よ!俺に焼肉定食を与えたまえ! ---------- やめてください 焼肉定食と焼鮭定食でTLが占められてしまいます ---------- 焼肉定食、生命あった ---------- 焼肉定食 #あなたがときめく4文字教えてください ---------- パジャマとティーシャツがめくれて、薄い肋骨の下に、焼肉定食が見えた。 ---------- (略)
※ TwitterAppOAuth で「PHP Notice: Use of undefined constant PHP_QUERY_RFC3986 〜」のエラーが発生する場合は、PHPバージョン5.4以降をお使いください。
終わりに
ツイート検索API(GET search/tweets)で、1回のリクエスト取得できるツイートは最大100件ですが、ツイート分析用途などでは、これを100件以上取得したくなる場合もあります。次回はツイート検索APIで、100件以上のツイートを取得する方法を調べてみたいと思います。
コメント
[…] 5分で出来る!Twitter API アプリケーション認証(Application-only authentication) https://blog.apar.jp/php/2778/ PHPでTwitterへ自動でツイートするツールを作る http://9-bb.com/php-twitter/ […]
30分くらいで使えました!
今日の日付と適当な場所のAND検索でツイートを取得することができました。
>やもさん
コメントありがとうございます。
記事が参考になったみたいでよかったです。