2010年7月22日木曜日

【twitter API】RT/@/DMの取得

あるtweetへの返信(@)は、
$twitter->statuses->mensions
で取得できる。
また、公式RT(RTされた自分のtweet)は、
$twitter->statuses->retweets_of_me
、ダイレクトメッセージは
$twitter->direct_messages
だ。ここまでは誰でもできそう。
で、問題は非公式RT。いわゆるQTとかも含めて。
これは、調べてみたところ、普通に@として取得できるようだ。
なので、システム上、非公式RTと通常のRT,@を区別して扱いたければ、取得した@をうまくふるいにかけて分類してやる必要がある。
一般的に、非公式RTは、
「@として取得できたtweetのうち、@の前に"RT"が付く」
「@として取得できたtweetのうち、@の前に"QT"が付く」

というようなフィルタリングでだいたいいけると思う。
なので、

$statuses = $twitter->statuses->mensions();
foreach ($statuses as $status) {
     if (preg_match('/(RT|QT) *@/', $status->text)) {
        $memsions['QT'][] = $status;
    } else {
        $mensions['@'][] = $status;
    }
}
var_dump($mensions);

こんな感じ?で分類できるのかな?試してないけど。

0 件のコメント:

コメントを投稿