YENLAND TIME :  

 Top >  Library  |  印刷する印刷ページ       はてなブックマークに追加 このページを Google Bookmarks に追加 RSS

大区分

その他

中区分

PC

小区分

Twitter

項目

2. Twitter Botの作成方法

入力者 山下章太 更新日 20121028


※記載していた内容が古くなってきましたので、2012年10月時点の内容に更新しています。



インターネットでは、ボット(Bot)というものがありますが、 Twitter(ツィッター)ではよく見かけることがあります。

詳しくは、『プログラミングができなくても作れるTwitter botの作り方』 というページに出ています。

ダウンロードは、こちらより行って下さい。

ファイルをダウンロードすると、下記のファイル(PHP)が入っています。

  • bot.php (botの動作のパターンを書くファイル。cronで実行するのもこのファイルです)
  • data.txt (発言させたい文章を書き込むデータファイル)
  • EasyBotter.php (botを動かすためのメインのスクリプト)
  • log.dat(返信履歴を記録するためのファイル。)
  • /PEAR(フォルダ)(botを動かすためのライブラリ。)
  • reply_pattern.php (特定の単語に特定の文章を返すためのデータファイル)
  • setting.php (botにアクセスするためのキーを書き込む設定ファイル)

以前のバージョンからはかなり変更されていますが、TwitterがOAuth認証になってから、 「Access Token」と「Access Token Secret」を利用することが必要になっています。

「setting.php」に「Access Token」と「Access Token Secret」などの情報を入力します。

OAuth認証取得用ページ

発言するコメントは、「data.txt」に入れておく必要があります。

このサイトの場合は、下記のようなBotを作成して、ランダムに掲載されている情報を表示しています。

YENLAND Bot: @yenbridge

「data.txt」には、掲載するコメントを置いておきますが、こちらのファイルが自動更新されないと困りますので、 YENLANDでは、「data.txt」作成用のモジュールを別途用意して、「data.txt」を自動更新しています。

利用の際の注意点

ここでは、「EasyBotter」を利用する際の留意点を幾つか記載します。

エンコード

Twitterのエンコードは、「utf-8」となっていますので、エンコードが上手くできていないと、 文字化けが発生します。
「utf-8」形式で保存できるエディタを利用して、編集する必要があります。



実行するファイルの場所

「EasyBotter.php」を実行することで、TwitterのBotに発言させますが、Cronなどで実行するファイルが同じ場所にない場合は起動しません。

具体的には、「EasyBotter.php」の28行目あたりに下記のコードがありますが、
$dir = getcwd();
として場所を取得しているため、Cronなどで実行するファイルが、「EasyBotter.php」と異なる場所に存在する場合は、エラーが発生します。

Cronで実行するファイルと「EasyBotter.php」が異なる場所にある場合は、 下記のようにファイルの場所を、直接記載する必要があります。

【変更前】
$path = $dir."/PEAR";

【変更後】
$path = "/home/xxxxx/domains/xxxx.net/html/tw/PEAR";



TwitterのAPIについて

Twitterの使用は、定期的に見直しされて変更されています。

ダウンロードしたファイルが、古いAPI(起動させるためのコード)を参照している可能性がありますので、 古いAPIを参照している場合は、変更して下さい。

変更するのは、EasyBotter.php の一番下ですが、赤字のように変更します。 コメントアウト(//)の箇所が、もともと入っているコードです。


function setUpdate($value){
$url = “http://api.twitter.com/1/statuses/update.xml”;
//$url = “https://twitter.com/statuses/update.xml”;
return $this->_setData($url,$value);
}

function getFriendsTimeline(){
$url = “http://api.twitter.com/1/statuses/friends_timeline.xml”;
//$url = “http://twitter.com/statuses/friends_timeline.xml”;
return $this->_getData($url);
}

function getReplies($page = false)
{
$url = “http://api.twitter.com/1/statuses/mentions.xml”;
//$url = “http://twitter.com/statuses/replies.xml”;
if ($page) {
$url .= ‘?page=’ . intval($page);
}
return $this->_getData($url);
}

function getFriends($id = null)
{
$url = “http://api.twitter.com/1/statuses/friends.xml”;
//$url = “http://twitter.com/statuses/friends.xml”;
return $this->_getData($url);
}

function getFollowers()
{
$url = “http://api.twitter.com/1/statuses/followers.xml”;
//$url = “http://twitter.com/statuses/followers.xml”;
return $this->_getData($url);
}

function followUser($screen_name)
{
$url = “http://api.twitter.com/1/friendships/create/”.$screen_name.”.xml”;
//$url = “http://twitter.com/friendships/create/”.$screen_name.”.xml”;
return $this->_setData($url);
}





   はてなブックマークに追加 このページを Google Bookmarks に追加 RSS