i trying use perl google spreadsheet api , getting stuck in error. did per doc @ http://search.cpan.org/~danjou/net-google-spreadsheets-0.1501/lib/net/google/spreadsheets.pm
here code
use net::google::spreadsheets; use net::google::dataapi::auth::oauth2; use net::oauth2::accesstoken; $oauth2; $service; $oauth2 = net::google::dataapi::auth::oauth2->new( client_id => '<clientid>', client_secret => '<client secret>', scope => ['http://spreadsheets.google.com/feeds/'], ); $url = $oauth2->authorize_url( access_type => 'offline', approval_prompt => 'force', ); print "$url\nenter code: "; $code = <stdin>; $access_token = $oauth2->get_access_token($code) or die; $service = net::google::spreadsheets->new(auth => $oauth2); print "testing spreadsheet"; # find spreadsheet key $spreadsheet = $service->spreadsheet( { key => '<spread sheet key>' }) or die $!; it not throw error during oauth when try access spreadsheet api gives me following error.
use of uninitialized value $nsuri in string eq @ /usr/local/lib/perl5/site_perl/5.14.2/mach/xml/libxml.pm line 1705. @ /usr/local/lib/perl5/site_perl/5.14.2/mach/xml/libxml.pm line 1699. xml::libxml::element::getelementsbytagnamens(xml::libxml::element=scalar(0x80416ed20), undef, "entry") called @ /usr/local/lib/perl5/site_perl/5.14.2/xml/atom/feed.pm line 84 xml::atom::feed::entries_libxml(xml::atom::feed=hash(0x8041938e8)) called @ /usr/local/lib/perl5/site_perl/5.14.2/net/google/dataapi.pm line 113 net::google::spreadsheets::spreadsheets(net::google::spreadsheets=hash(0x803045600), hash(0x802a5cb70)) called @ /usr/local/lib/perl5/site_perl/5.14.2/net/google/spreadsheets.pm line 57 net::google::spreadsheets::anon(code(0x803020438), net::google::spreadsheets=hash(0x803045600), hash(0x802a5cb70)) called @ /usr/local/lib/perl5/site_perl/5.14.2/mach/mouse/meta/class.pm line 381 mouse::meta::class::anon(net::google::spreadsheets=hash(0x803045600), hash(0x802a5cb70)) called @ /usr/local/lib/perl5/site_perl/5.14.2/mach/mouse/meta/class.pm line 334 net::google::spreadsheets::spreadsheets(net::google::spreadsheets=hash(0x803045600), hash(0x802a5cb70)) called @ /usr/local/lib/perl5/site_perl/5.14.2/net/google/dataapi.pm line 132 net::google::spreadsheets::spreadsheet(net::google::spreadsheets=hash(0x803045600), hash(0x802a5cb70)) called @ try.pl line 62
for having same problem here solution.
looks between time when module written , today google has changed api documentation of module needs modified.
by changing key => 'the key' id => 'the key' solved problem.
so correct way spreadsheet
my $spreadsheet = $service->spreadsheet( { id => '<spread sheet key>' }) or die $!; the key part of url https://docs.google.com/spreadsheets/d/[spreadsheetkey]/edit
Comments
Post a Comment