Twitterで自動フォロー削除
まあbotにはフォロー返しに伴う自動フォロー削除は必須ですよね。
#!/usr/bin/env perl use utf8; use strict; use warnings; use Array::Diff; use Data::Dumper; use Net::Twitter; my $CONSUMER_KEY='***********'; my $CONSUMER_SECRET='**************'; #$botは適当に想像してちょ my $twitter = Net::Twitter->new( traits => ['API::REST', 'OAuth'], consumer_key => $CONSUMER_KEY, consumer_secret => $CONSUMER_SECRET, ); $twitter->access_token($bot->{oauth_token}); $twitter->access_token_secret($bot->{oauth_token_secret}); die('Auth failed:'.$bot->{username}) unless ( $twitter->authorized ) ; my $cr = $twitter->verify_credentials; my $own_id = $cr->{id}; my $nextc = -1; # paging default. my @following_id_list; # outgo do{ my $following_list = $twitter->friends_ids({ id=>$own_id, cursor => $nextc }); $nextc = $following_list->{next_cursor}; foreach my $id (@{ $following_list->{ids} }){ push(@following_id_list, $id) ; } }while($nextc!=0); @following_id_list = sort @following_id_list; $nextc = -1; my @followers_id_list; # income do{ my $followers_list = $twitter->followers_ids({ id=>$own_id, cursor => $nextc }); $nextc = $followers_list->{next_cursor}; foreach my $id (@{ $followers_list->{ids} }){ push(@followers_id_list, $id) ; } }while($nextc!=0); @followers_id_list = sort @followers_id_list; my $diff = Array::Diff->diff(\@following_id_list, \@followers_id_list); foreach my $delid (@{ $diff->{deleted} }){ $twitter->destroy_friend($delid); }
これはフォロー外しされたときに報復する事しかしませんけど、
数行くわえれば自動フォローにもなります。
Twitterはまともに動く事が全く保証されていないので、これでうっかり全件削除になることが想像できます。
省略しましたが、できるだけフェイルセーフいれましょう。
しかし…全くモチベーション上がらないコードだった…用途的に…。