Twitter API – PHPで発言投稿とリプライ

2010 年 3 月 26 日 | カテゴリー: API, PHP, Twitter

この前の続きです。

今回は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でユーザータイムラインの取得

・Twitter API - PHPでタイムラインの取得

・TwitterのAPIを利用して何か作る事にした

・MySQLのバックアップを自動で。phpMyBackupProを使ってみた

・Twitterに登録した

[Twitter API – PHPで発言投稿とリプライ]をはてなブックマークに追加

 
  1. gnjdg6457
    2010 年 4 月 27 日 16:24

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