Services_Twitter で返信にin_reply_to_status_id を入れる方法。

PHPTwitterAPIを簡単に使えるServices_Twitter
非常に便利なのだけど、発言に対して返信のやり方が分からなくて困っていた。

結論を言うと、

<?php
$values = array(
  "status" => "@halhorn おはよう",
  "in_reply_to_status_id" => 1015615
);
$st->setUpdate($values);
?>

とすることでin_reply_to_status_idを入れることができた。

解説は以下。

in_reply_to_status_id とは

まず、in_reply_to_status_id とは。
Twitterで「@halhorn おはよう」のように返信をする時に返信先がどこかという情報が埋め込まれます。これがin_reply_to_status_idというやつです。

Twitter公式ページなどでリプライを見てみると右下に小さく「○○宛」などと書いてあります。これをクリックするとその返信先のメッセージが表示されます。

setUpdate() の使い方

以前紹介しましたがServices_TwitterというのはPHPTwitterAPIを使うためのライブラリです。
これを使うと簡単にボットが作れたりします。便利。
詳しくは、「Twitterのbotの簡単な作り方@PHP」参照。

何かをつぶやく時に使うのがこのsetUpdate($value)というメソッドです。
例えば、

setUpdate("もうおなかいっぱいなり");

を実行すると「もうおなかいっぱいなり」と投稿されます。

setUpdate($value);
の$valueはテキスト以外に、配列を入れることもできるようで、

$values = array(
  "status" => "@halhorn おはよう",
  "in_reply_to_status_id" => 1015615
);
$st->setUpdate($values);

とすることで返信を行うことができます。
statusは発言内容で、ここには@halhornなど返信先の投稿者が無いといけないようです。
in_reply_to_status_idは返信先の発言のidです。

あとは"source"というのもあるそうです。これについては調べていないので何のことかは知りません。(必要になってから調べる人。)



参考にしたサイト
twitm - mail de twitter -
http://www.twitm.net/
ここのサイトのプログラムを参考にさせていただきました。