plaggerでtwitterにOauth認証で投稿するように

追記: 最新版 だと対応されてました><
id:otsune コメントありがとうございました


2010/08/16 で本当にtwitter APIBasic認証が使えなくなるかもしれないので Net::Twitter をアップデートして Oauth認証で投稿するようにしました

plagger使ってる人ってまだいるのかは謎

認証用の設定をtwitterの管理画面でヤリます

http://d.hatena.ne.jp/layerzero/20090930/p1
で非常に詳しく解説いただいてますので、上から順番にやっていって

  • Consumer key
  • Consumer secret
  • Access token
  • Access token secret

を手に入れた

投稿用のスクリプトを修正します

とりあえず

sudo cpan -i Net::Twitter


http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Publish/Twitter.pm を修正
(パッチあてまくってるのでdiffとれませんでした><)

initialize をまるまる書き換えます
Plugin::Publish::Twitter.pm (19-27)

sub initialize {
    my($self, $context) = @_;
    $self->{twitter} = Net::Twitter->new(
        traits          => ['API::REST', 'OAuth'],
        consumer_key    => $self->conf->{consumer_key},
        consumer_secret => $self->conf->{consumer_key_secret},
    );
    $self->{twitter}->access_token($self->conf->{access_token});
    $self->{twitter}->access_token_secret($self->conf->{access_token_secret});
}

なんか Net::OAuth にアレされるみたいなので encode_utf8 を削除
Plugin::Publish::Twitter.pm (43)

$self->{twitter}->update( $body ) or $context->error("Can't update twitter status");


最後にレシピ側に最初に設定したトークンを(username,passwordのかわりに)設定します

  - module: Publish::Twitter
    config:
      consumer_key: *****************
      consumer_key_secret: *****************
      access_token: *****************
      access_token_secret: *****************

これでBasic認証が使えなくなっても吐露し放題!やったね