Twitter API – PHPで発言投稿とリプライ
この前の続きです。
今回はTwitterへ発言したいと思います。
まず、投稿時は、毎度出てきますが例のfunctionの
"method"=>"GET",
を
"method"=>"POST",
にします。
URLは、http://twitter.com/statuses/update.xml?status=投稿文字列
となりますが、投稿文字列を rawurlencode() でエンコードしてあげないといけません。
要するに、
$url='http://twitter.com/statuses/update.xml?status='.rawurlencode('投稿文字列');
となります。
誰かにリプライする場合でも、rawurlencode('@ryopos こんにちは') とすればOKです。
以上です。
っとまぁこれだけでは物足りないので(笑)少し応用を。
誰かの発言に、"どの発言に対するリプライかがわかるように"リプライしてみましょう。
まず発言を取得します。
例のfunctionに与えるURLはhttp://twitter.com/statuses/friends_timeline/ユーザー名.xml
$resに戻り値が入ってるとし、以下を実行します。
foreach( $res->status as $value ){
//顔写真
echo '<img src="'.$value->user->profile_image_url.'">';
//ユーザー名
echo $value->user->screen_name.'<br>';
//発言内容
echo $value->text.'<br>';
//発言時刻
echo date( "Y年m月d日H時i分s秒", strtotime( $value->created_at ) ).'<br>';
//発言ID
echo $value->id.'<hr>';
}
これでTLがずらずらと表示されますが、下の発言ID、これが重要です。
このIDが無いと、リプライ時に”どの発言に対してのリプライなのか”がわからなくなってしまいます。
っで、投稿時のURL
$url='http://twitter.com/statuses/update.xml?status='.rawurlencode('投稿文字列');
にこの発言IDをくっつけます。
$url='http://twitter.com/statuses/update.xml?status='.rawurlencode('投稿文字列').'&in_reply_to_status_id='.リプライ元の発言ID;
in_reply_to_status_id というパラメータが増えました。これで各Twitterクライアントでリプライ元がわかるようになります。
簡単ですね(笑)
長い期間で説明してきましたがいかがでしたでしょうか。。
どなたかの参考になれば嬉しいです。
・Twitter API - PHPでユーザータイムラインの取得
・MySQLのバックアップを自動で。phpMyBackupProを使ってみた


すばらしい。「Twitter API 仕様書 (勝手に日本語訳シリーズ)」に感謝します