nDiki

2013年3月4日 (月)

ぼちぼち Twitter API 1.1 対応 (Net::Twitter::Lite で)

さくらのレンタルサーバ

  my $response
    = URI::Fetch->fetch(
    "http://api.twitter.com/1/statuses/user_timeline.rss?user_id=$id&count=200"
    ) or die URI::Fetch->errstr;

とかレガシーなコードが動いているの(2007年11月に書いた*1)で、Twitter API 1.1 に対応せねば。

Net::Twitter::Lite を使うか。Net::Twitter::Lite を cpanm で home の下にインストール

 curl -LO http://xrl.us/cpanm
 chomod 755 cpanm
 cpanm -l /home/naney/local/libperl-twitter Net::Twitter::Lite

で自分の Tweet を取ってくるのはだいたいこんな感じ。

 #!/usr/bin/perl

 use warnings;
 use strict;
 use HTTP::Date;
 use Net::Twitter::Lite;

 use lib
   qw(/home/naney/local/libperl-twitter/lib/perl5 /home/naney/local/libperl-twitter/lib/perl5/i386-freebsd-64int);

 my $consumer_key        = 'aaa';
 my $consumer_secret     = 'bbb';
 my $access_token        = 'ccc';
 my $access_token_secret = 'ddd';
 my $id                  = 自分の Twitter アカウントの ID(数字);

 my $twitter = Net::Twitter::Lite->new(
   apiurl           => 'http://api.twitter.com/1.1',
   legacy_lists_api => 0,
   consumer_key     => $consumer_key,
   consumer_secret  => $consumer_secret
 );

 $twitter->access_token($access_token);
 $twitter->access_token_secret($access_token_secret);

 my $timeline = $twitter->user_timeline(
   {
     count       => 200,
     user_id     => $id,
     include_rts => 'true'
   }
 );

 foreach my $tweet (@$timeline) {
   my $time     = $tweet->{created_at};
   $time =~ s/\+0000/UTC/;
   $tweet->{_created_at} = HTTP::Date::str2time($time);

   # use $tweet here.
 }

[ Perl ]

*1RSSURL は去年修正

スポンサード リンク

[ 3月4日全て ]

Related term

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS の企画開発を行うグループのマネージャーをしています。CS 向上・コミュニティマネジメント・ユーザーサポート・健全化などにも取り組んでいます。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス

Process Time: 0.348135s / load averages: 1.10, 0.84, 0.60
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker