実用! PerlでコマンドラインからTwitter投稿(OAuth対応)+In-Reply-To対応さらに改良版
M.C.P.C.: 実用! PerlでコマンドラインからTwitter投稿(OAuth対応)+In-Reply-To対応 のさらに改良版。
- 改良点1.
- consumer_keyは、pitに入れず、同じディレクトリのconsumer_key.yamlに入れる
- 改良点2.
- In-Reply-Toをやりやすく。第2引数にReplyしたいツイートのURLをhttp付きでそのままコピペすると、自動的にscreen_nameとstatus_idを分離して、適切な書式(先頭に@付きでscreen_name入れてくれたり、返信すべきstatus_idを自動的にIn_Reply_to_status_idとして設定してくれる)でpostしてくれる。
Filename: twit
#!/usr/bin/perl
use strict;
use warnings;
use Config::Pit;
use Encode;
use File::Spec;
use FindBin::Real;
use Net::Twitter;
use utf8;
use YAML;
# 初期設定
my $keys = YAML::LoadFile(
File::Spec->catdir( FindBin::Real::Bin(), 'consumer_key.yaml' )
);
my $nt = Net::Twitter->new(
traits => [qw/API::REST OAuth WrapError/],
consumer_key => $keys->{consumer_key},
consumer_secret => $keys->{consumer_key_secret},
ssl => 1,
);
my $pit = pit_get( 'twitter.com@CLCLCL' );
$nt->access_token ( $pit->{access_token} );
$nt->access_token_secret( $pit->{access_token_secret} );
# 処理
my $arg;
$arg->{status} = decode_utf8( $ARGV[0] );
if ($ARGV[1]) {
if ( $ARGV[1] =~ m/^.*?(\d+)$/ ) {
# 第2引数の数字部分
$arg->{in_reply_to_status_id} = $1;
}
if ( $arg->{in_reply_to_status_id} ne $ARGV[1] ) {
# 第2引数が数字のみでなかった場合
(my $reply = $ARGV[1]) =~ s/^.*?(\w+)\/status.+$/$1/;
$arg->{status} = '@'.$reply." $arg->{status}";
}
}
# 表示
print encode_utf8("$arg->{status}\n");
print 'length: ' . length($arg->{status}) . "\n";
if ( $arg->{in_reply_to_status_id} ) {
print "in_reply_to: $arg->{in_reply_to_status_id}\n";
}
# post
my $res = $nt->update( $arg );
print $nt->http_message . "\n";
exit;
__END__
pitとかろくに説明していないんだけど、問い合わせもないので、まあいいや。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/48871356
この記事へのトラックバック一覧です: 実用! PerlでコマンドラインからTwitter投稿(OAuth対応)+In-Reply-To対応さらに改良版:






![森田 創: WEB+DB PRESS 総集編 [Vol.1~60]](http://ecx.images-amazon.com/images/I/51aE58LxWlL._SL75_.jpg)
















![: 電子ルーペ ViewPe[ビューペ] 3R-MSV35 マイクロスコープ デジタル顕微鏡 高機能 低価格 読書 植物 研究 肌チェック](http://ecx.images-amazon.com/images/I/41erkiQgAsL._SL75_.jpg)





![: Optimus bright [docomo L-07C] 対応 予備バッテリー 1500mAh BL-44JN](http://ecx.images-amazon.com/images/I/41gjqsDjq%2BL._SL75_.jpg)










![: パンツの穴 [DVD]](http://ecx.images-amazon.com/images/I/21R9SEY1HPL._SL75_.jpg)

















