M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年6月11日 23:29

実用! PerlでコマンドラインからTwitter投稿(OAuth対応)+In-Reply-To対応

このエントリーをはてなブックマークに追加 mixiチェック

昨日perl-mongers.orgに書き込んだTwitter APIをOAuth認証通してTwitterに投稿するスクリプト [perl-mongers.org] ですが、それを踏まえて、僕が使っているスクリプトがこれです。

Filename: twit

#!/usr/bin/perl
 
use strict;
use warnings;
use Config::Pit;
use Encode;
use Net::Twitter;
use utf8;
 
my $p = pit_get( 'twitter.com@CLCLCL' );
my $nt = Net::Twitter->new(
    traits => [qw/API::REST OAuth WrapError/],
    consumer_key    => $p->{consumer_key},
    consumer_secret => $p->{consumer_key_secret},
    ssl => 1,
);
$nt->access_token       ($p->{access_token});
$nt->access_token_secret($p->{access_token_secret});
my $arg;
$arg->{status}                = decode_utf8($ARGV[0]);
$arg->{in_reply_to_status_id} = $ARGV[1] if $ARGV[1];
my $len = length($arg->{status});
print "$len\n";
 
my $res = $nt->update( $arg );
print $nt->http_message."\n";
exit;
__END__

keyとかtokenとかは、Pitで管理する方式に。PerlでのPitに関しては、パスワード設定をコードに書かない(Config::Pit) - モダンなPerl入門 - モダンなPerl入門 [perl-users.jp] を参照のこと。これも僕が書いた記事だったりします。アバウトミーハックなんて、僕ぐらいしかせんわー

んで、今回のスクリプトを使いますと、In-Reply-Toを付けた返信ができます。第1引数に@付きで返信したい人のid(username)を入れておき、第2引数で返信したい人のpostのstatus_idを入れて実行すると、TwitterのWebで返信したのと同じような返信になりますよ。

使ってみてくださいね。

投稿 大野 義貴 [Perl] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3249

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入れてくれた... 続きを読む

コメントする