先日サーバーに追加した「composer」を使い、Twitter API用ライブラリで有名なTwitterOAuthの後継となる「cowitter」をインストールしてみました。

この記事では、composerを使ってTwitter API用ライブラリcowitterをインストールして、Twitter APIにキーワード検索をかけてツイート情報を取得する方法について、サンプルのPHPコードも交えてご紹介したいと思います。

composerでcowitterを追加

先日、PHPに追加したcomposerのテストも兼ねて、Twitter APIのライブラリでおなじみとなっているcowitterのインストールをやってみました。かつてのTwitterOAuthの後継というものです。

composerとは

PHP向けのパッケージ管理システムcomposerを使うと、cowitterのライブラリインストールは本当に簡単にできました。composerの詳細やインストール方法についてははこちらの記事でご紹介しています。

シェルコマンド一発でcowitterを追加

シェルから下記コマンドをうつことでcowitterライブラリがインストールできます。

% php composer.phar require mpyw/cowitter:^1.0

twitter APIへの接続

cowitterライブラリのインストールが完了したら、これを使ってtwitter検索のプログラムを作ってみます。

Twitter APIに必要なアプリケーションキー

cowitterの使い方についてはこちらのブログ記事が一番分かりやすかったですが、コードを書く前に、Twitter APIのキーを用意する必要があります。

Consumer Key

Consumer Secret

Access Token

Access Token Secret

Consumer Key, Consumer Secret, Access Token, Access Token Secretをお持ちでない場合には、Twitter Developersでご自身のtwitterにログインし、create an appからAPIキーを新規取得ができます。

Cowitterの初期設定

Consumer Key, Consumer Secret, Access Token, Access Token Secret が手元に用意できたら、cowitterライブラリをPHPで読み込み、初期設定に進みます。

require 'vendor/autoload.php';

//名前空間設定
use mpyw\Co\Co;
use mpyw\Co\CURLException;
use mpyw\Cowitter\Client;
use mpyw\Cowitter\HttpException;

ついでに長々しいAPIキーも定義してしまうと楽かもしれないです。

//キー設定
define( 'CONSUMER_KEY', '****' );
define( 'CONSUMER_SECRET', ****'  );
define( 'ACCESS_TOKEN', ****'  );
define( 'ACCESS_TOKEN_SECRET', ****' );

初期設定が済んだら、クライアントインスタンスを生成してしまいましょう。

$client = new Client( [ CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET ] );

cowitterでTwitter APIに接続

インスタンスが生成できたらAPIに投げる検索条件を設定してみます。$query部分にTwitterで検索したいキーワードを設定すれば、キーワードに関連したツイートを検索してもらえます。

$query_array = array(
	'q' => $query,	//検索したいキーワード
	'result_type' => 'recent',		// 取得するツイートの種類
	'lang' => 'ja'
);

あとはクライアントインスタンスからAPIにクエリを投げて、レスポンスデータを配列などに放り込み二次利用すればOKです。

$statuses = $client -> get('search/tweets', $query_array) -> statuses;

foreach ($statuses as $status) {
	twtext[] = htmlspecialchars($status -> text, ENT_QUOTES, 'UTF-8');
	$twuserName[] = htmlspecialchars($status -> user -> name, ENT_QUOTES, 'UTF-8');
	$twuserIcon[] = htmlspecialchars($status -> user -> profile_image_url, ENT_QUOTES, 'UTF-8');
}

検索エンジンdtnの検索プログラムに設定

上記のプログラムで無事に検索結果が取得できましたので、これをディレクトリ型検索エンジンdtnの検索ボックスに組み込んでみました。

TOPページで検索する際に「つぶやき検索」にチェックをつけて検索すると、カテゴリや登録サイトの検索と一緒にツイート検索結果も表示をしてあります。

cowitterからTwitter APIに投げたレスポンスも問題ないですが、いちおう「つぶやき検索」にチェックを付けた場合だけ結果を表示するようにしてあります。よければお試しください。

dtn.jpの検索結果にツイート検索機能をつけてみた
twitterAPIの検索結果も表示できました

おわりに

以上のような流れで、検索キーワードに関連したツイートデータを取る程度ならcowitterで簡単に実現ができましたが、検索するのであればTwitterアプリを使うほうが楽でしょうから、もっと他の使い道を考えた方がよさそうです。

ABOUT dtn.jp

この運営ブログをみてdtn.jpの運営サイトに興味をお持ちになった方は下記のリンク集からサイトをご参照ください。PHP・SQL・JS・HTML・CSSや様々なAPIでゼロから立ち上げたサイトを複数運営しています。

dtn.jp関連サイト

  • ディレクトリ型検索エンジンdtn大手サイトは全てサービスを終了し、中小でも運営を継続するところがほとんどなくなってしまったディレクトリ型検索エンジンを2002年から細々運営しており、未だに細かい機能改修も行っております。申請されたサイトは実際に訪問して細かく確認をしているので登録までかなりお時間いただきます。
  • 猫ネコサーチエンジン猫・ペットサイト専用のディレクトリ型検索エンジンです。登録サイトはサイトのスクリーンショット付きでカテゴリに掲載しています。
  • 画像掲示板の泉画像やYouTubeやニコニコ動画が貼り付け可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitter(ツイッター)のトレンドワードや人気ハッシュタグデータを月別に集計してランキング形式で公開しています。
  • Keyword Tool++Yahoo APIや楽天サイトのデータを日次で収集したデータを元に、EC系キーワードをラインキング形式でご紹介しています。各ワードは検索ボリュームや関連語、24か月の検索ボリュームトレンドを確認も可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能なサイトにしています。
  • TrendinGファッションモールに出店するブランドをアイテムヒット率でランキングとしたサイトです。まだβ版です。

各サイトの開発方法などについて

各サイトの開発方法や運用トラブルについては、当ブログで不定期にご紹介しています。Twitterで新着記事のお知らせもしています。宜しければフォロー下さい。