先日サーバーに追加した「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・ニコニコ動画・Tiktokの貼り付けが可能な匿名画像掲示板です。27ジャンルに分かれた掲示板に、それぞれ100スレッドまで立てることが可能です。
  • ツイータンTwitter APIを使って10分おきに収集したTwitterトレンドワード・人気ハッシュタグデータを、月別に集計してランキング形式で公開しています。年間トレンドワードも公開中。
  • Keyword Tool++Yahooショッピングや楽天のトレンドワードデータを日次収集し、EC系の人気キーワードをラインキング形式でご紹介しています。各ワードの検索ボリュームや関連語、24か月の検索ボリュームをグラフで確認が可能です。
  • 消費者金融の泉カードローン商品を取り扱う金融業者を一覧で比較可能としたサイトです。カテゴリ別、人気度別、限度額別、金利別に比較可能です。
  • TrendinGファッションブランドを人気アイテムヒット率でランキング化し、一覧でご紹介しているサイトです。

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

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