11 December 2010

(Perl) Net::Twitter::Liteを使って投稿。oAuth対応版

Twitterに投稿しようと思い、CPANライブラリでサンプルを漁っていると、ベーシック認証時代のものが大量に混じっていたりして、紛らわしいことこの上ない。で、2010年末時点で書き込めるoAuth認証対応版のメモ

■ 準備
twitterのサイトにログオンしてから、Twitter Developers 公式サイトのアプリケーション管理画面(http://dev.twitter.com/apps/)へ移動する。

ここで、新しいアプリケーションを登録すると、次の4つのキーが供給される。
・API key
・Consumer secret
・Access Token (oauth_token)
・Access Token Secret (oauth_token_secret)

最後の2個は、画面の右側の所にメニューがあるので、そこを押せば表示される。
(Amazonクラウドの管理画面より分りにくい…。デザイン悪すぎ)

20101211-twitter-key.jpg

プログラムは、日本語を通す場合、UTF-8でUTF-8フラグ付きじゃないとダメなようなので、そこのところ注意


#!/usr/bin/perl
# << save this script in UTF-8 >>

use strict;
use warnings;
use Net::Twitter::Lite;
use Encode;

my $cs_key = 'cJkduHUnueKSUrfkyekVH';
my $cs_secret = 'ceOCHUxmeiDEIVAleoDED7mUxg64R5Eieveso';

my $ac_token = '298315889-ceoDEmpeov3AWEOUQKaOMYWcemPwd30mVsZWcelC';
my $ac_secret = 'mexWInZljc30MWIisSMW0KXWsYgs';

my $nt = Net::Twitter::Lite->new(
# username => $user, ← ベーシック認証時はこれでよかった
# password => $password,
consumer_key => $cs_key,
consumer_secret => $cs_secret
);

$nt->access_token($ac_token);
$nt->access_token_secret($ac_secret);

my $result = $nt->update({status => decode('utf8','日本語でperl net::twitter::liteから投稿')});

print Dumper $result;
print "\n";