10.応用編(4):タイムラインの語句に反応させる

今回はbotの方からタイムラインの語句に反応し@を返す機能について説明します。


【タイムライン反応に関する注意】
タイムライン反応はbotが能動的にリプライを行います。
フォロワーさんへこちらから働きかけるわけですので、相応の配慮というものが必要になると私は考えています。(頻繁に反応しすぎるとスパムbotになってしまうので…)
通常の@返信に比べて反応語句を減らす、反応率を鈍くするなどの工夫が必要になります。
少し不安かな?と思われる方はひとまずbotの管理に慣れてからこの機能を実装するといいかもしれません。


それでは設定方法をご説明します。

bot.phpを開いて、


//=============================
//botの動作をここに書いてください
//先頭に//がある行はコメント扱いなので実行しません。実行したい行の頭の//を削除してください。
//=============================
//$response = $eb->autoFollow();
//$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
//$response = $eb->reply(5,"data.txt","reply_pattern.php");
//$response = $eb->replyTimeline(5,"reply_pattern.php");

一番下の行のreplyTimelineの文頭の//を削除して下さい。
今の設定ではタイムライン反応のパターンも@返信と同じくreply_pattern.phpを参照するようになっていますが、ここは@返信とは別にタイムライン反応専用のパターンファイルを作って、そちらを参照するようにしましょう。
(ファイル名はreply_pattern_tl.phpなど)


$response = $eb->replyTimeline(5,"reply_pattern_tl.php");

こんな感じで。


【タイムライン反応パターンの作る際のコツ】
1.@返信の時より反応する条件を厳しくする。
 (例)「おはよう」に反応させる場合、
   @返信…「おはよ」で反応
   タイムライン反応…「おはよう」で反応


2.反応率を調整する


if(rand(0,1) === 0){
$response = $eb->replyTimeline(5,"reply_pattern_tl.php");
}

↑は実際のbotで走らせているタイムライン反応のスクリプトです。(bot.php)
bot,phpを実行したときに、2回に1回の確率でreply_pattern_tl.phpの内容を読みに行く=タイムライン反応率50%になっています。
bot.phpの下の方に書かれている実行パターンその中の例の一つ、『bot.phpを実行したときに、5回に1回ランダムに実行される』の応用です。
rand関数の中の値を変更。実行時に出力される値は0と1の2通りで0のときだけ反応するので反応率50%、という仕組みです。


以上2つは現在走行させているbotに取り入れています。
皆さんも慣れてきましたら色々工夫をしてみて下さい。