Google-Voice
view release on metacpan or search on metacpan
lib/Google/Voice.pm view on Meta::CPAN
package Google::Voice;
use strict;
use warnings;
use Mojo::UserAgent;
use Mojo::JSON;
use IO::Socket::SSL 1.37;
use Google::Voice::Feed;
use Google::Voice::Call;
use Mojo::Base -base;
our $VERSION = 0.06;
__PACKAGE__->attr([qw/ ua rnr_se /]);
sub new {
my $self = bless {}, shift;
$self->ua(Mojo::UserAgent->new);
return $self;
}
sub login {
my $self = shift;
my ($user, $pass) = @_;
my $c = $self->ua;
$c->max_redirects(6); # Google seems to like redirects everywhere
# GALX value
my $el =
$c->get('https://accounts.google.com/ServiceLogin')
->res->dom->at('input[name="GALX"]');
my $galx = $el->attrs->{value} if $el;
$c->post(
'https://accounts.google.com/ServiceLogin',
form => { Email => $user,
Passwd => $pass,
GALX => $galx,
}
);
# rnr_se required for subsequent requests
$el =
$c->get('https://www.google.com/voice#inbox')
->res->dom->at('input[name="_rnr_se"]');
# Login not accepted
return unless $el;
$self->rnr_se($el->attrs->{value});
return $self;
}
sub send_sms {
my $self = shift;
my $c = $self->ua;
my ($phone, $content) = @_;
my $json = $c->post(
'https://www.google.com/voice/b/0/sms/send',
( run in 1.007 second using v1.01-cache-2.11-cpan-39bf76dae61 )