PerlでXauth経由でTwitterにPostする。

PerlでローカルからTwitterにポストする。(仮)後で変更を加える。 - 永字八法の続きと言うか焼き直し。
command.txtの1か2を作成して、同じディレクトリに置いてから、tweet_poster.plを実行する。すると、result.txtにその結果が記述される。

command.txt(1)

gettoken
(username)
(password)

command.txt(2)

statusupdate
(access_token)
(access_token_secret)
tweet written by utf8.

tweet_poster.pl

# 日本語
use utf8;
use strict;
use warnings;
use Net::Twitter::Lite;

my $ck = 'xxxxxxxxxxxxxxxxxxxx';
my $cks = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

my $comfile = 'command.txt';
-e $comfile or exit(); # コマンドファイルがなければ何もしない。
my $resfile = 'result.txt';

# 変数の宣言
my $user;
my $pass;
my $at;
my $ats;
my $status;

# コマンドを読み込む
open ( IN, "<:utf8", $comfile );
my @lines = <IN>;
close( IN );
map { chomp($_); chomp($_) } @lines;
my $mode = shift @lines; # モードの取得

if ( $mode eq 'gettoken' ) {
	$user = shift @lines; # ユーザー名の取得
	$pass = shift @lines; # パスワードの取得
	my $nt = Net::Twitter::Lite->new(
		consumer_key=>$ck,
		consumer_secret=>$cks,
	);
	( $at, $ats ) = $nt->xauth($user, $pass);
	open ( OUT, ">$resfile" );
	print OUT "$at\n$ats";
	close ( OUT );
	exit();
}

$at = shift @lines;
$ats = shift @lines;
$status = join ( "", @lines );

my $nt = Net::Twitter::Lite->new(
	consumer_key=>$ck,
	consumer_secret=>$cks,
	access_token=>$at,
	access_token_secret=>$ats
);
open ( OUT, ">$resfile" );
print OUT $nt->update($status);
close ( OUT );
exit();

現在の状況

Xauth対応待ち。