[PHP] Twitterボットを作成してみました。Twitterへのアプリケーション登録、OAuth認証、Twitter APIを用いた呟きまで。
PHPを利用してTwitterボットを作成してみました。認証方法がBasic認証が廃止され、OAuth認証となりちょっとだけ面倒かと思いきや、何とかなりました。忘れないようにブログに残しておきます。
まずはTwitterにアプリケーションを登録
https://dev.twitter.com/apps/new
ここでTwitterの機能を使いたいアプリケーションの情報を登録します。登録するとOAuth認証に必要な「Consumer key」「Consumer secret」をゲットします。またさらに、登録した画面の右側にある「My Access Token」のリンクから、「Access Token」「Access Token Secret」を取得します。
OAuth認証については、http://gihyo.jp/dev/feature/01/oauthが分かりやすかったです(*゚▽゚)ノ
PHPでOAuth認証するためのライブラリを入手
ここでは、abrahamさんが提供しているOAuthライブラリ"twitteroauth"を使いました。ダウンロードはhttp://github.com/abraham/twitteroauth/tree/masterから。バージョン0.2.0以降を選択する。
ダウンロードした中から、「OAuth.php」「twitteroauth.php」を自分の作るTwitterボット用のPHPファイルを同じディレクトリに配備する。
やっと実装
やっとボットの実装。今回は、1件呟くような実装です。
<?php // 準備 require_once('twitteroauth.php'); $consumer_key = 'あなたのconsumer key'; $consumer_secret = 'あなたのconsumer secret'; $access_token = 'あなたのaccess token'; $access_token_secret = 'あなたのaccess token secret'; $message = '初めまして。PHPから呟きを投稿してみました(*´∇`*)'; // OAuth認証 $twitter = new TwitterOAuth($consumer_key ,$consumer_secret, $access_token, $access_token_secret); // メッセージを投稿する $twitter->format = 'xml'; $tweet = $twitter->post('statuses/update', array('status' => $message)); echo $tweet; ?>
まずは、require_onceでOAuthのライブラリを読み込む。そしてTwitterOAuthクラスのインスタンスを作成することで、認証を行います。その後、TwitterOAuthのインスタンスのpostメソッドで、指定URLに指定したメッセージを投稿します。
コメントアウトしているOAuthRequestメソッドでURL, POST/GET, クエリ文字列を指定して呟きを投稿する事も出来ます。
最後に
OAuth認証は自分で実装しようとするとかなり大変そうですが、それがライブラリでやってもらえるのは凄く楽チン。良いですね~。
TwitterOAuthのメソッドでpostとgetがあるので、TwitterAPIに合わせて使うと、TiwtterAPIが色々と使えそうです。