いちいち手動でr4sするのもめんどくさくなってきた時に、「Perlなら捗るよ」という魔の一言を聞いたので、やってみた。
1)開発環境を入れる。
私はWindows使いなので、Google先生のお言葉に習ってActivePerlというのを入れました。インストールは次へをひたすら連打するゲームです。
次に、インストールされたらTwitterを扱うライブラリらしい、Net::Twitterというのを入れます。インストールフォルダ/binでコマンドラインからcpan.bat→cpan>ってなったらinstall Net::Twitter。しばらくうにょうにょしてるので、必要に応じてyesって入れてれば終わります。
2)コード書く
まず、呟くのからやってみました。PerlでTwitter投稿(Net::Twitter) - KWの徒然Blog。。。 さんのコードをコピペ…
『Can't locate Net/Twitter.pm in @INC (@INC contains: [インストールフォルダ]/Perl/site/lib [インストールフォルダ]/Perl/lib
.) at ***.pl line 2.
BEGIN failed--compilation aborted at ***.pl line 2.』
と言ったエラーが出る場合は、そのライブラリのuse文の前に、
lib use '[Net::Twitterのインストール先(...\Perl\cpan\build\Net-Twitter-3.18004-fC4xoV\libとか)]'
という一文を追加しましょう。
次に、access_tokenとかを取得します、Perl + Net::Twitter + OAuth で自分のリスト内の人を別アカウントで全部followしちゃうよ - XXXannexさんを参考にしました。
で、コード書きます。こんな感じ。
Read more →
1)開発環境を入れる。
私はWindows使いなので、Google先生のお言葉に習ってActivePerlというのを入れました。インストールは次へをひたすら連打するゲームです。
次に、インストールされたらTwitterを扱うライブラリらしい、Net::Twitterというのを入れます。インストールフォルダ/binでコマンドラインからcpan.bat→cpan>ってなったらinstall Net::Twitter。しばらくうにょうにょしてるので、必要に応じてyesって入れてれば終わります。
2)コード書く
まず、呟くのからやってみました。PerlでTwitter投稿(Net::Twitter) - KWの徒然Blog。。。 さんのコードをコピペ…
『Can't locate Net/Twitter.pm in @INC (@INC contains: [インストールフォルダ]/Perl/site/lib [インストールフォルダ]/Perl/lib
.) at ***.pl line 2.
BEGIN failed--compilation aborted at ***.pl line 2.』
と言ったエラーが出る場合は、そのライブラリのuse文の前に、
lib use '[Net::Twitterのインストール先(...\Perl\cpan\build\Net-Twitter-3.18004-fC4xoV\libとか)]'
という一文を追加しましょう。
次に、access_tokenとかを取得します、Perl + Net::Twitter + OAuth で自分のリスト内の人を別アカウントで全部followしちゃうよ - XXXannexさんを参考にしました。
で、コード書きます。こんな感じ。
use lib '[インストール先]/Perl/cpan/build/Net-Twitter-3.18004-fC4xoV/lib'; use Net::Twitter; use utf8; use strict; use warnings; use Encode qw/decode/; #必要に応じて変えてください my $consumer_key = "[ここにconsumer keyいれる]"; my $consumer_secret = "[ここにconsumer secretいれる]"; my $token_ref = [ ["[ここに1つめのアカウントのaccess tokenいれる]"], ["[ここに1つめのアカウントのaccess token secretいれる]"], ["[ここに2つめのアカウントのaccess tokenいれる]"], ["[ここに2つめのアカウントのaccess token secretいれる]"], ["[ここに3つめのアカウントのaccess tokenいれる]"], ["[ここに3つめのアカウントのaccess token secretいれる]"]]; my $nt = Net::Twitter->new( consumer_key => $consumer_key, consumer_secret => $consumer_secret, #access_token => $token, #access_token_secret => $token_secret, ssl => 1, ); #コマンドラインから引数を取得、Shift-JISから内部エンコードのUTF-8に変える。 my $screen_name = decode('Shift_JIS', $ARGV[0]); #スクリーンネームからidを取得、原理上つぶやき0がこれだとスパム出来ない my $target_id = ""; eval { my $statuses = $nt->user_timeline({id => $screen_name}); for my $status ( @$statuses ) { $target_id = $status->{user}{id}; last; } }; print "spam target : $target_id\n"; #連スパム foreach my $arre (@{$token_ref}){ $nt->access_token($arre->[0]); $nt->access_token_secret($arre->[1]); my $result = $nt->report_spam($target_id); }でもってコマンドラインから
perl [このスクリプトのファイル名].pl [スパムしたい相手のスクリーンネーム]と入力します。一応確かめてみたらスパム報告できてるみたいです。