質問: Node.jsでntwitterのパッケージを利用してbotを動かそうとしています。 そこでbotに送られてきたリプライに対してリプライを返したいのですが、以下のように in_reply_to_status_id オプションを送られてきたツイートのものを指定しても望んだ通りにツイートに対するリプライではなく単にユーザに対するリプライとなってしまします。 ``` // twitter は ntwitter のオブジェクト // reply は送られてきたツイートのオブジェクト twitter.updateStatus( "@example hoge", { in_reply_to_status_id: reply.id }, function(error, success){} ); ``` 実際にhttpで送信されるデータをconsole.log等で確認したところタイポや指定の仕方が間違えているわけではありません。 また、rubyやphpでも同様のことを試してみましたがやはりツイートに対するリプライになりませんでした。 各種クライアントや数あるbotではきちんとツイートに対するリプライができていることを考えると、何か原因があるのかもしれませんが、自分では解決できないので質問しています。 根本的な原因を知っている方や、ツイートに対するリプライができるという方、ご教授お願いします。
回答: `id` プロパティにはツイートIDが数値として入っているのですが、現在のツイートIDは数字が大きすぎてJavascriptでは正確に扱うことができません。 代わりに、IDが文字列として入っている `id_str` を使うようにしてください。 ``` twitter.updateStatus( "@example hoge", { in_reply_to_status_id: reply.id_str }, function(error, success){} ); ``` 参考 * TwitterのIDが64bitになるとJavaScript等で問題が出るので対策を - F.Ko-Jiの「一秒後は未来」 * Twitter IDs | Twitter Developers