MojoX-Twitter
view release on metacpan or search on metacpan
Revision history for MojoX-Twitter
0.07 2022-06-09 11:00:14 CST
- upgrade Mojolicious to 9.21
0.06 2016-09-23 22:00:59 CST
- support streaming
0.05 2016-09-05 13:25:52 CST
- in case there is no X-Rate-Limit-Remaining in header
0.04 2016-09-05 12:49:30 CST
- fix sign
0.03 2016-09-05 12:44:36 CST
- redo with 429
# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.024.
Build.PL
Changes
LICENSE
MANIFEST
META.json
META.yml
README
cpanfile
dist.ini
examples/streaming.pl
examples/users_search.pl
lib/MojoX/Twitter.pm
t/author-pod-syntax.t
t/basic.t
my $twitter = MojoX::Twitter->new(
consumer_key => 'x',
consumer_secret => 'z',
access_token => '1-z',
access_token_secret => 'x',
);
my $users = $twitter->request('GET', 'users/show', { screen_name => 'support' });
## streaming
$twitter->streaming('https://userstream.twitter.com/1.1/user.json', { with => 'followings' }, sub {
my ($tweet) = @_;
say Dumper(\$tweet);
});
DESCRIPTION
MojoX::Twitter is a simple Twitter client:
* without OAuth authentication
examples/streaming.pl view on Meta::CPAN
use lib "$Bin/../lib";
use MojoX::Twitter;
use Data::Dumper;
my $twitter = MojoX::Twitter->new(
consumer_key => 'z',
consumer_secret => 'x',
access_token => '1-z',
access_token_secret => 'x',
);
$twitter->streaming('https://userstream.twitter.com/1.1/user.json', { with => 'followings' }, sub {
my ($tweet) = @_;
say Dumper(\$tweet);
});
lib/MojoX/Twitter.pm view on Meta::CPAN
return $self->request($method, $command, $params); # REDO
}
croak "$err->{code} response: $err->{message}" if $err->{code};
croak "Connection error: $err->{message}";
}
return $res->json;
}
sub streaming {
my ($self, $url, $params, $callback) = @_;
my $auth_str = $self->__build_auth_header('GET', $url, $params);
if ($params) {
my $uri = Mojo::URL->new($url);
$uri->query($params);
$url = $uri->to_string();
}
lib/MojoX/Twitter.pm view on Meta::CPAN
my $tx = $self->ua->build_tx(GET => $url => {
Authorization => "OAuth $auth_str"
});
$tx->res->max_message_size(0);
# Replace "read" events to disable default content parser
my $input;
$tx->res->content->unsubscribe('read')->on(read => sub {
my ($content, $bytes) = @_;
# https://dev.twitter.com/streaming/overview/processing
# The body of a streaming API response consists of a series of newline-delimited messages, where ânewlineâ is considered to be \r\n (in hex, 0x0D 0x0A) and âmessageâ is a JSON encoded data structure or a blank line.
$input .= $bytes;
while ($input =~ s/^(.*?)\r\n//) {
my ($json_raw) = $1;
if (length($json_raw)) {
$callback->(j($json_raw));
}
}
});
# Process transaction
lib/MojoX/Twitter.pm view on Meta::CPAN
my $twitter = MojoX::Twitter->new(
consumer_key => 'x',
consumer_secret => 'z',
access_token => '1-z',
access_token_secret => 'x',
);
my $users = $twitter->request('GET', 'users/show', { screen_name => 'support' });
## streaming
$twitter->streaming('https://userstream.twitter.com/1.1/user.json', { with => 'followings' }, sub {
my ($tweet) = @_;
say Dumper(\$tweet);
});
=head1 DESCRIPTION
MojoX::Twitter is a simple Twitter client:
=over 4
( run in 0.270 second using v1.01-cache-2.11-cpan-4d50c553e7e )