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

SYNOPSIS
     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), # numeric 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 { ... },
     );

DESCRIPTION
   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.

METHODS
 my $streamer = AnyEvent::Twitter::Stream->new(%args);
   username password
       These arguments are used for basic authentication.

   consumer_key consumer_secret token token_secret
       If you want to use the OAuth authentication mechanism, you need to
       set use arguments

   consumer_key consumer_secret token token_secret
       If you want to use the OAuth authentication mechanism, you need to
       set these arguments

   method
       The name of the method you want to use on the stream. Currently,
       anyone of :

       firehose
       sample
       userstream
         To use this method, you need to use the OAuth mechanism.

       filter
         With this method you can specify what you want to filter amongst
         track, follow and locations.

         See <https://dev.twitter.com/docs/api/1.1/post/statuses/filter>
         for the details of the parameters.

   api_url
       Pass this to override the default URL for the API endpoint.

   request_method
       Pass this to override the default HTTP request method.

   timeout
       Set the timeout value.

   on_connect
       Callback to execute when a stream is connected.

   on_tweet
       Callback to execute when a new tweet is received.

   on_error
   on_eof
   on_keepalive
   on_delete
       Callback to execute when the stream send a delete notification.

   on_friends
       Only with the usertream method. Callback to execute when the stream
       send a list of friends.

   on_direct_message
       Only with the usertream method. Callback to execute when a direct
       message is received in the stream.

   on_event
       Only with the userstream method. Callback to execute when the stream
       send an event notification (follow, ...).

   additional agruments
       Any additional arguments are assumed to be parameters to the
       underlying API method and are passed to Twitter.

NOTES
   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.

AUTHOR
   Tatsuhiko Miyagawa <[email protected]>

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

SEE ALSO
   AnyEvent::Twitter, Net::Twitter::Stream