# it throws a Net::Twitter::Lite::Error object.
# You can catch and process these exceptions by using eval blocks and testing $@
## from http://search.cpan.org/perldoc?Net::Twitter::Lite#ERROR_HANDLING
-use Net::Twitter::Lite;
+use Net::Twitter::Lite::WithAPIv1_1;
use FindBin qw($Bin);
use YAML::Tiny;
use Date::Parse qw(str2time);
}
if ($skip) {
+ $stat->{$tweets->{$id}{type}} = $id;
next;
}
DEBUG or sendmail(%mail) or warn "Error sending mail: $Mail::Sendmail::error\n";
}
-if ($tweets) {
+if (ref $tweets and keys %{$tweets}) {
# save last status to yaml file
DEBUG or YAML::Tiny::DumpFile("$Bin/status.yml", $stat);
DEBUG and warn "status.yml => ", Dumper($stat);
}
sub login {
- # make Net::Twitter::Lite object and login
+ # make Net::Twitter::Lite::WithAPIv1_1 object and login
# param => hash object of configration
- # ret => Net::Twitter::Lite object
+ # ret => Net::Twitter::Lite::WithAPIv1_1 object
my $conf = shift @_;
- my $bot = Net::Twitter::Lite->new(
+ my $bot = Net::Twitter::Lite::WithAPIv1_1->new(
consumer_key => $conf->{consumer_key},
consumer_secret => $conf->{consumer_secret},
+ legacy_lists_api => 0,
+ ssl => 1,
);
$bot->access_token($conf->{access_token});
sub or_search {
# search tweets containing keywords
- # param => Net::Twitter::Lite object, ArrayRef of keywords, since_id
+ # param => Net::Twitter::Lite::WithAPIv1_1 object, ArrayRef of keywords, since_id
# ret => HashRef of status_id (timeline order is destroyed)
# or undef (none is found)
);
}
VERBOSE and warn Dumper($res);
- if ($res->{results}) {
- foreach my $tweet (@{$res->{results}}) {
+ if ($res->{statuses}) {
+ foreach my $tweet (@{$res->{statuses}}) {
my $res = $bot->show_status($tweet->{id});
VERBOSE and warn Dumper($res);
sub mentions_ids {
# return status_ids mentioned to me
- # param => Net::Twitter::Lite object, since_id
+ # param => Net::Twitter::Lite::WithAPIv1_1 object, since_id
# ret => HashRef of status_id (timeline order is destroyed)
# or undef (none is found)
if (blessed $@ && $@->isa('Net::Twitter::Lite::Error')) {
warn $@->error;
if ($@->twitter_error) {
- my %twitter_error = %{$@->twitter_error};
- map {
- $twitter_error{"$_ => "} = $twitter_error{$_} . "\n";
- delete $twitter_error{$_}
- } keys %twitter_error;
- warn join("", %twitter_error);
+ my $twitter_error = $@->twitter_error;
+ if (defined $twitter_error->{errors} && ref($twitter_error->{errors})) {
+ foreach my $error (@{$twitter_error->{errors}}) {
+ warn "code => " , $error->{code}, "\n";
+ warn "message => ", $error->{message}, "\n";
+ }
+ }
+ else {
+ # unknown HASH structure
+ use Data::Dumper;
+ warn Dumper $twitter_error;
+ }
}
}
else {