これまでに得たTwitter APIの知識を活かしてbotを作ってみました。
Twitterは通常、人が手動でWebに入力したつぶやきが反映されます。しかし、入力をプログラムなどで自動化したものをロボット(Robot)、通称ボット(bot)と呼ぶようです。
プログラムは前回に構築した
PHPでTwitter APIを使ったOAuth認証
をベースにします。
OAuth認証で紹介した方法では、アプリに用意されているコンシューマキーからリクエストトークンを取得し、次にアクセストークンを取得し、それを元にプログラムからツイートができるというものでした。
今回、botを作るにあたり、自動的につぶやくのは自分のアカウントです。自分のアカウントであれば、直接Twitterのサイトよりアクセストークンを取得することができます。
twitter developers
アクセストークンまでの遷移がよく分からないのですが。。。「Your apps」から任意のアプリケーションの「Edit Details」を選択。サイドメニューの「Application detail」から「My Access Token」を選択すると「Access Token」と「Access Token Secret」を取得するとこができます。
したがって、前回のプログラムを流用すると、以下のようにしてつぶやくことができます。
require_once('HTTP/Request2.php'); require_once('HTTP/OAuth/Consumer.php'); $consumer = new HTTP_OAuth_Consumer("Consumer key", "Consumer secret"); $http_request = new HTTP_Request2(); $http_request->setConfig('ssl_verify_peer', false); $consumer_request = new HTTP_OAuth_Consumer_Request(); $consumer_request->accept($http_request); $consumer->accept($consumer_request); $consumer->setToken("Access Token"); $consumer->setTokenSecret("Access Token Secret"); $res = $consumer->sendRequest("https://twitter.com/statuses/update.xml", array('status' => 'てすとです'), "POST");
あとは、「’てすとです’」の部分を予め用意したDBから取得するなり、RSSから取得するなり。そして、このプログラムを任意のアクセスのタイミングで実行するもよし、cronなどに登録するもよし。
以上で基本的なbotのしくみが完成です。
コメントする