このブログを検索

2011/03/19

blockしているユーザの一括解除

blockしているユーザの一覧が見たくて、検索するとそういうページがあるのだが、その解除が一括でできない。半分くらい解除して、メンドクサイしこれくらいは簡単に作れるだろうと、やってみる。API辞典みたいな本は持っているのでblock一覧APIをタイプしてみるが Could not authenticate you となってしまう。そうだ、アプリを登録しないといけないのだ。
#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use Net::Twitter;

my $twit = Net::Twitter->new(
traits => [qw/API::REST OAuth WrapError/],
consumer_key    => 'xxxxxxxxxxxxxxxxxxxxxxx',
consumer_secret => 'xxxxxxxxxxxxxxxxxxxxxxx',
ssl => 1,
);
$twit->access_token       ('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
$twit->access_token_secret('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

my $array_ref = $twit->blocking();

#print Dumper $array_ref;

foreach my $hash_ref(@$array_ref){
print "$hash_ref->{'screen_name'}\n";
}


exit;
__END__


できた。

これでブロックしているユーザの一覧が表示される。WindowsXPで、ActivePerlをインストールして、Net::Twitterをインストールしておいて、Twitterのホームページでアプリケーションの登録をして、cosumuer_keyとかはその結果を書く。酒を飲みながらいろいろサーチしながら、すぐできました。

次は、これらのユーザのブロック解除ですね。

#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use Net::Twitter;

my $twit = Net::Twitter->new(
traits => [qw/API::REST OAuth WrapError/],
consumer_key    => 'xxxxxxxxxxxxxxxxxxxx',
consumer_secret => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
ssl => 1,
);
$twit->access_token       ('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
$twit->access_token_secret('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

my $array_ref = $twit->blocking();

foreach my $hash_ref(@$array_ref){
$twit->destroy_block($hash_ref->{'id'});
}

exit;
__END__


blockしているユーザを取得するまでは同じで、それに対して destroy_block をするだけ。ただし、このときの引数はscreen_nameではなくてidです。いいなあ、twitter。今回の震災でも、強さがはっきりわかりました。apiを公開するかどうかが、流行るかどうかですね。こんな感じで、followしている・されているユーザの一覧、followされてるユーザ全員のfollow, followしているユーザ全員のunfollowなども一瞬でできる。