Re: Google Analytics API を Perl から扱うスクリプト Nobuo Danjou ゆーすけべがGoogle Analytics APIを触ってたので 、拙作の Net::Google::DataAPI を使うとどうなるのかをやってみた。 http://gist.github.com/213031 #!/usr/bin/env perl use strict; use warnings; use Config::Pit; use DateTime; use YAML; { package Analytics::Datum; use Moose; use Net::Google::DataAPI; use XML::Atom::Util qw(first); with 'Net::Google::DataAPI::Role::Entry'; entry_has 'value' => ( from_atom => sub { my ($self, $atom) = @_; first($atom->elem, $self->ns('dxp')->{uri}, 'metric')->getAttribute('value'); } ); entry_has 'name' => ( from_atom => sub { my ($self, $atom) = @_; first($atom->elem, $self->ns('dxp')->{uri}, 'metric')->getAttribute('name'); } ); } { package Analytics::Profile; use Moose; use Net::Google::DataAPI; with 'Net::Google::DataAPI::Role::Entry'; entry_has 'profile_id' => ( ns => 'dxp', tagname => 'tableId', ); } { package Analytics; use Moose; use Net::Google::DataAPI; with 'Net::Google::DataAPI::Role::Service' => { service => 'analytics', source => 'analytics.pl by nobuo.danjou@gmail.com', ns => { dxp => 'http://schemas.google.com/analytics/2009', } }; feedurl datum => ( default => 'https://www.google.com/analytics/feeds/data', entry_class => 'Analytics::Datum', ); feedurl profile => ( default => 'https://www.google.com/analytics/feeds/accounts/default', entry_class => 'Analytics::Profile', ); } my $config = pit_get('google.com'); my $service = Analytics->new( { username => $config->{username}, password => $config->{password}, } ); if (defined $ARGV[0]) { my $profile_id = $ARGV[0]; my $date_string = $ARGV[1] || DateTime->today( time_zone => 'local' ) ->subtract( days => 1 ) ->ymd('-'); my $datum = $service->datum( { ids => $profile_id, metrics => 'ga:pageviews', 'start-date' => $date_string, 'end-date' => $date_string, prettyprint => 'true', } ); print Dump { date => $date_string, name => $datum->name, value => $datum->value, } } else { my @profiles = $service->profiles( { prettyprint => 'true', } ); for (@profiles) { print Dump {title => $_->title, profile_id => $_->profile_id}; } } 行数が1行だけ短くなった!! Written on 2009-10-18. Categories: Tags: Next: 株式会社ソフリットの第2期決算公告を掲示しました Previous: もう寝ろと言うtumblr