いちいち手動で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 [スパムしたい相手のスクリーンネーム]と入力します。一応確かめてみたらスパム報告できてるみたいです。