PHP 5分で出来る!Twitter API アプリケーション認証(Application-only authentication)

プログラム
スポンサーリンク

ツイッター 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件以上のツイートを取得する方法を調べてみたいと思います。

コメント

  1. PHPでも勉強するか! その5 ZABBIXからツイートする | Network For Everyone より:

    […] 5分で出来る!Twitter API アプリケーション認証(Application-only authentication) https://blog.apar.jp/php/2778/ PHPでTwitterへ自動でツイートするツールを作る http://9-bb.com/php-twitter/ […]

  2. やも より:

    30分くらいで使えました!
    今日の日付と適当な場所のAND検索でツイートを取得することができました。

タイトルとURLをコピーしました