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

twitterAPIの検索結果も表示できました

おわりに

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

PHPが学べるおすすめプログラミングスクール

この運営ブログをみて、もしdtn.jp管理人のようにサイトをゼロから作ってみたいという思いに駆られた方は、サイト開発やプログラミングをオンラインで受講できるプログラミングスクールの活用をしてみてはいかがでしょうか。サーバ/WordPress/HTML/CSS/JS/PHP/SQLなどの基本さえ分かれば、ゼロからサイト立ち上げもポンポンできるようになって、今なら仕事や転職にも役立つのでオススメです。

PHPも学べるオンラインスクール

  • CodeCampAWS Cloud9を使ったクラウド上のIDEが用意されているので、ネットにつながればスタート開始可能というゴージャスなスクールです。講師も選べて、Webマスターコースならプログラミング経験0でも一気にフロントエンドからバックエンドまでマスターできます。
  • ウェブカツJava言語やRuby言語なんぞ教えん!という、初心者にありがちな挫折ポイントがよく分かってるスクールです。フロントエンドエンジニアに必要なスキルセット&PHPがマスターできます。
  • フリークス HTML/CSSから始まり、MySQLやLinuxからPHPの変数や分岐やループ、クラスやPDOに最後はMVCまで教えてくれるので、そこまで分かればなんでもできそうです。メンターに質問もし放題がいいですね。
  • テックアカデミー法人のIT研修もやってる業界最大手・受講者数No.1のスクールです。メンターとの定期オンライン面談やチャットサポートなどもあり、大手ならではインフラ環境がウリです。PHPと合わせてjQueryもマスターできる、PHP/Laravelとフロントエンドコースがおすすめです。

オンラインスクールのデメリット

孤独になりがちなサイト制作も、優しいメンターがそばにいてくれれば凄い楽しそうですが、もちろんデメリットもあります。お金がかかるという点です。ひたすらググって、本を読んでよりは確実にコストがかかってしまいます。とはいえ、多少の余裕があるなら、こんなご時世なので時間と労力を買った方が良いと思います。