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),
    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

method

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

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

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_event

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

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 <miyagawa@bulknews.net>

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

1 POD Error

The following errors were encountered while parsing the POD:

Around line 326:

You forgot a '=back' before '=head1'