2011年5月19日木曜日

BOTだってお気に入り ふぁぼり機能

果たしてBOTからふぁぼられても嬉しいのか?そこは使い方次第ということで。
以前の記事は削除、こちらは多重ふぁぼ対策済みです。

※ 2012/10/13追記  
============================================
この記事の内容は古いです。
TwitterAPI1.1に対応した記事を追加しました。
http://6zr.blogspot.jp/2012/10/twitterapi11.html 
============================================


EasyBotterで発言するときやフォローする時に使われる「_setData($url, $value = array())」の関数を使います。
ほとんどAPI部分を変えただけのようなものです。何か他にも応用が利きそうです。


EasyBotterは、一度replyを送った場合は次回のcron実行の際その対象のtweetを無視します。(例外もあり)
以前記したふぁぼり処理では、「ふぁぼると同時にreplyを送った」という時は問題ないのですが、「ふぁぼったがreplyを送っていない」というtweetに対して、タイミング次第では多重にふぁぼろうとしてしまいます。
実害があるというわけでもありませんが、クライアントでふぁぼられ通知を設定している人などにとってはうっとおしいことでしょう。
そこで、すでにふぁぼったtweetであるかどうかという判定を追加します。
twitterAPIの戻り値にちゃんと用意されていますね。



以下に私が実際に使用しているコード(一部変更)を転載。「タイムライン反応を作る」処理の中で、「//リプライパターンと照合」の直前ぐらいに書いてます。




かなりいい加減ですのでいろいろ変更して試してみてください。
ちなみに、実行結果で誰のどの発言をふぁぼったか表示するようになってます。(echo~の行)
なんでもかんでも、結果を表示する癖をつけておくと後からわかりやすいですね。

3 件のコメント:

  1. こんばんは。
    このコードを実装してもよいでしょうか?
    良ければどこにどうするか詳しく教えてくれたらと思います。。。

    返信削除
  2. 全く構いませんよ。もし何か不具合が出ても一切責任は負えませんが…
    >preg_match("/フロン|巨神/i",$text,$matches)
    の部分を、ふぁぼりの対象にしたい正規表現パターンに変更し、あとは本文中に書いたように、
    >「タイムライン反応を作る」処理の中で、「//リプライパターンと照合」の直前ぐらい
    にコピペして試してみてください。

    返信削除
  3. こんばんは、TL上のツイートを全てファボる場合はどのように書き換えれば良いのでしょうか…?

    返信削除