
AnyEvent::Twitter::Stream - Receive Twitter streaming API in an event loop

use AnyEvent::Twitter::Stream;
# receive updates from @following_ids
my $listener = AnyEvent::Twitter::Stream->new(
username => $user,
password => $password,
method => "filter", # "firehose" for everything, "sample" for sample timeline
follow => join(",", @following_ids),
on_tweet => sub {
my $tweet = shift;
warn "$tweet->{user}{screen_name}: $tweet->{text}\n";
},
on_keepalive => sub {
warn "ping\n";
},
on_delete => sub {
my ($tweet_id, $user_id) = @_; # callback executed when twitter send a delete notification
...
},
timeout => 45,
);
# track keywords
my $guard = AnyEvent::Twitter::Stream->new(
username => $user,
password => $password,
method => "filter",
track => "Perl,Test,Music",
on_tweet => sub { },
);
# to use OAuth authentication
my $listener = AnyEvent::Twitter::Stream->new(
consumer_key => $consumer_key,
consumer_secret => $consumer_secret,
token => $token,
token_secret => $token_secret,
method => "filter",
track => "...",
on_tweet => sub { ... },
);

AnyEvent::Twitter::Stream is an AnyEvent user to receive Twitter streaming API, available at http://dev.twitter.com/pages/streaming_api and http://dev.twitter.com/pages/user_streams.
See "track.pl" in eg for more client code example.

These arguments are used for basic authentication.
If you want to use the OAuth authentication mechanism, you need to set use arguments
If you want to use the OAuth authentication mechanism, you need to set these arguments
The name of the method you want to use on the stream. Currently, anyone of :
Set the timeout value.
Callback to execute when a stream is connected.
Callback to execute when a new tweet is received.
Callback to execute when the stream send a delete notification.
Only with the usertream method. Callback to execute when the stream send a list of friends.
Only with the userstream method. Callback to execute when the stream send an event notification (follow, ...).

To use the userstream method, Twitter recommend using the HTTPS protocol. For this, you need to set the ANYEVENT_TWITTER_STREAM_SSL environment variable, and install the Net::SSLeay module.

Tatsuhiko Miyagawa <miyagawa@bulknews.net>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
