Changes between Initial Version and Version 1 of Dev/Twitter/Perl


Ignore:
Timestamp:
Dec 18, 2010 10:19:50 PM (13 years ago)
Author:
mitty
Comment:

moved from ../

Legend:

Unmodified
Added
Removed
Modified
  • Dev/Twitter/Perl

    v1 v1  
     1[[PageOutline]] 
     2 
     3 == Perl == 
     4 * [http://search.cpan.org/perldoc?Net::Twitter Net::Twitter - search.cpan.org] 
     5   * Mooseを使うためか、依存パッケージがかなり多い (Ubuntu lucidでaptitude install libnet-twitter-perl => 49 newly installed) 
     6 * [http://search.cpan.org/perldoc?Net::Twitter::Lite Net::Twitter::Lite - search.cpan.org] 
     7   * 依存パッケージは少ない(5 newly installed)が、エラーハンドリングを自前でやってくれないのでevalしないといけない(公式にそう書いてある…) 
     8   * デフォルトではNet::OAuth(libnet-oauth-perl)を入れてくれないので、気をつけないと認証できなくて悩むことになる 
     9 
     10 * [http://labs.s-koichi.info/blog/archives/2010/04/21/2328-180.php ついっこ代わりに、Twitterのbotを作成してみた | Koichi Labs Blog] 
     11 
     12 * [http://d.hatena.ne.jp/connvoi_tyou/20090628/1246170347 電車の時間を教えてくれるtwiiterのbot的ななにかをつくる。 - connvoi_tyouの日記] 
     13 * [http://d.hatena.ne.jp/connvoi_tyou/20090711/1247323842 twitter bot的な何かをつくる。その2 - connvoi_tyouの日記] 
     14 * [http://d.hatena.ne.jp/munaryo/20090714/1247577155 式波botを作る - 看招 血染東方一片紅] 
     15 
     16 === glossary === 
     17 * id 
     18   * 文脈に依存するが、メソッドに引数として与える際はuser_id or screen_name or status_id 
     19   * 返値のHASHのキーとして含まれる場合は、user_id or status_idのことが多い模様 
     20   * 返値の例 
     21{{{ 
     22my $res = $bot->followers({cursor => -1}); 
     23> $ret->{users}[0]{id} => user_id 
     24> $ret->{users}[0]{status}{id} => status_id 
     25}}} 
     26 * user_id 
     27   * ユーザを指定するID(num) 
     28 * screen_name 
     29   * twitter.com/hogehoge の hogehoge の部分 
     30 * status_id 
     31   * つぶやき(tweet)を一意に指定するID(num) twitter.com/hogehoge/status/12345 の12345の部分 
     32 * since_id 
     33   * 指定するID「より大きな」IDのみを対象とする 
     34 * page 
     35   * 20件ずつ取得する際の(過去に向かっての)ページ番号 
     36   * 開始は1 
     37 
     38 === commonly used method === 
     39 * followers 
     40   * IDで指定されるユーザ「を」フォローしているユーザのリスト 
     41   * 引数idを省略した場合、自分をフォローしているユーザのリストが返る 
     42 * followers_ids 
     43   * idのリストだけ欲しい場合 
     44   * 返値がfollowerのuser_idの単純な配列リファレンスなので使いやすい 
     45 * friends 
     46   * IDで指定されるユーザ「が」フォローしているユーザのリスト 
     47   * followingというメソッド名でも可 
     48 * retweet 
     49   * IDで指定されるつぶやきをRT 
     50   * 新しく生成されたstatusのIDをshow_statusしたものが返る 
     51   * 既にRT済だったりする場合は「403: Forbidden」 
     52   * rtweets とメソッド名が紛らわしい… 
     53 * retweeted_by 
     54   * IDで指定されるつぶやきをRTしたユーザのリストを得る 
     55 * retweeted_by_ids 
     56   * retweeted_byのuser_idのみバージョン 
     57 * retweeted_by_me 
     58   * 自分がRTしたつぶやきのリスト twitter.com/retweets 
     59   * メニューの「Retweets」=>「Retweets by you(あなたのリツイート)」と同じ 
     60 * retweeted_of_me 
     61   * RTされた自分のつぶやき twitter.com/retweeted_of_mine 
     62   * メニューの「Retweets」=>「Your tweets, retweeted(リツイートされたあなたのツイート)」と同じ 
     63 * retweeted_to_me 
     64   * メニューの「Retweets」=>「Retweets by others(みんなのリツイート)」と同じ 
     65 * retweets 
     66   * IDで指定されるつぶやきのRTリスト 
     67 * show_status 
     68   * IDで指定されるつぶやきを得る 
     69   * 必ずしもログインしている必要は無い 
     70 * mentions 
     71   * @hogehoge となっているつぶやきを得る 
     72   * repliesというメソッド名でも可 
     73   * since_id => 0 だと「Error in 'since_id' parameter: invalid id.」 
     74   * RTは含まれない 
     75   * example => [./Perl#mentions] 
     76 * update 
     77   * 新しくstatusを生成 
     78 * search 
     79   * 検索機能を実行する 
     80   * 引数はHASHだが、'string'をそのまま与えると { q => 'string'} として解釈する模様 
     81   * example => [./Perl#search] 
     82   * Twitterの検索機能は信頼性が低いかつフィルタされている単語があるのでそもそもあまり使い物にならない 
     83 * user_timeline 
     84   * (指定した)ユーザのつぶやきリストを得る 
     85   * 指定しない場合、自分のつぶやき 
     86   * RTは含まれない 
     87 * rate_limit_status 
     88   * APIの、単位時間あたりの最大回数回数と現時点での残り回数を得る 
     89   * example => [./Perl#rate_limit_status] 
     90 
     91 === tips === 
     92 * timelineなど、返値がArrayの場合、新しいつぶやきが若いindexでアクセスされる。つまり古いつぶやきから逐次処理する場合はreverseで配列を逆順にして処理すると良い 
     93 * [http://wiki.tmd45.in/wiki.cgi?page=Twitter%A5%C9%A5%AD%A5%E5%A5%E1%A5%F3%A5%C8%2F%A5%BD%A1%BC%A5%B7%A5%E3%A5%EB%A5%B0%A5%E9%A5%D5%B4%D8%CF%A2%A4%CEAPI Twitterドキュメント/ソーシャルグラフ関連のAPI - TMD45WIKI!!!!] 
     94   * cursor=-1 または cursor=カーソル位置 (必須[になる予定。現在は、オプション]) 
     95   * 指定した(データベースの)カーソル位置以降のユーザID一覧を5000件分(1ページ分)取得する。-1 を指定した場合、先頭からの5000件分を取得する。応答本体に next_cursor がある場合は、「次のページ」(のカーソル位置)、previous_cursor がある場合は、「前のページ」(のカーソル位置)がそれぞれ存在することを示す。本APIの次回実行時に、この next_cursor や previous_cursor の示すカーソル位置を使用することで、ユーザID一覧の「次のページ」や「前のページ」相当分(5000件分)を取得することができる。(サーバが負荷集中状態の場合等、必ずしも5000件取得できる保証はない) 
     96   * cursor 引数を省略した場合、全ユーザ(friends)のID一覧を返す(タイムアウトが発生するか、不完全な一覧が返る可能性が高い)[将来、上記のcursor 引数省略時の挙動は廃止し、cursor 引数の指定を必須とする予定] 
     97 * retweetを、元々のstatus_idではなく、RT自体のIDを使ってretweet($id)すると、入れ子RTになるのではなく元々のstatus_idのtweetに対するRTになる。 
     98   * 元々のtweetから見ると2回RTされている 
     99 
     100 === samples === 
     101 * source:/vendor/twitter/ 
     102   * [http://d.hatena.ne.jp/layerzero/20090930/p1 Net::TwitterでOAuthしてみるテスト - 日々積みゲー] 
     103   * [http://www.otchy.net/20090726/making-of-twitter-bot-index/ Twitter ボットの作り方 Perl 編 (目次)   OTCHY.NET] 
     104 * source:/trunk/Dev/twitter/twitterbot.pl 
     105   * とりあえずつぎはぎで動くようになったもの 
     106   * => http://twitter.com/wordian 
     107   * Ubuntu  
     108     * sudo aptitude install -R libyaml-tiny-perl libnet-twitter-lite-perl libnet-oauth-perl 
     109   * ActivePerl 
     110     1. ppm install Net::Twitter::Lite 
     111     1. ppm install YAML::Tiny 
     112     1. ppm install Date::Parse 
     113   * とりあえずつぎはぎで動くようになったもの