# NAME URL::Signature::Google::Maps::API - Sign URLs for use with Google Maps API Enterprise Business Accounts # SYNOPSIS use URL::Signature::Google::Maps::API; my $signer = URL::Signature::Google::Maps::API->new(); my $server = "http://maps.googleapis.com"; my $path_query = "/maps/api/staticmap?size=600x300&markers=Clifton,VA&sensor=false"; my $url = $signer->url($server => $path_query); # DESCRIPTION Generates a signed URL for use in the Google Maps API. The Google Enterprise keys can be stored in an INI file (i.e. /etc/google.conf) or passed on assignment.. # CONSTRUCTOR ## new Use client and key from INI file /etc/google.conf my $signer=URL::Signature::Google::Maps::API->new(channel => "myapp"); Use client and key from construction my $signer=URL::Signature::Google::Maps::API->new( client => "abc-xyzpdq", key => "xUUUUUUUUUUUU-UUUUUUUUUUUUU=", channel => "myapp", ); Don't use client or signature just pass through URLs my $signer=URL::Signature::Google::Maps::API->new(client=>""); # USAGE ## url Returns a signed URL given a two part URL of server and path\_query. my $url=$signer->url($server => $path_query); Example my $url=$signer->url("http://maps.googleapis.com" => "/maps/api/staticmap?size=600x300&markers=Clifton,VA&sensor=false"); This method adds client and channel parameters (if configured) so they should not be added to the passed in path query. ## signature Returns the signature value if you want to use the mathematics without the url method. my $path_query = "/path/script" . "?" . $query; my $url=$protocol_server . $path_query . "&signature=" . $signer->signature($path_query); # Google Enterprise Credentials You may store the credentials in an INI formatted file or you may specify the credentials on construction or after construction. Configuration file format [GoogleAPI] client=abc-xyzpdq key=xUUUUUUUUUUUU-UUUUUUUUUUUUU= ## client Sets and returns the Google Enterprise Client Default: Value from INI file $signer->client("abc-xyzpdq"); ## key Sets and returns the Google Enterprise Key Default: Value from INI file $signer->key("xUUUUUUUUUUUU-UUUUUUUUUUUUU="); ## channel Sets and returns the Google Enterprise channel for determining application in Google Enterprise Support Portal ([http://www.google.com/enterprise/portal](http://www.google.com/enterprise/portal)). Default: "" Note: This is a per application setting not a per user setting. ## config\_filename Sets and returns the filename of the configuration file. Default: /etc/google.conf ## config\_paths Sets and returns a list of [Path::Class:Dir](https://metacpan.org/pod/Path::Class:Dir) objects to check for a readable basename. Precedence: sysconfdir (i.e. /etc), Perl script directory, then current directory (i.e. ".") Default: [/etc, $0->dir, .] ## config\_basename Sets and returns the basename for the Google configuration file. Default: google.conf # BUGS Please log on github. # AUTHOR Michael R. Davis CPAN ID: MRDVT # COPYRIGHT MIT License Copyright (c) 2022 Michael R. Davis # SEE ALSO [http://gmaps-samples.googlecode.com/svn/trunk/urlsigning/index.html](http://gmaps-samples.googlecode.com/svn/trunk/urlsigning/index.html), [http://gmaps-samples.googlecode.com/svn/trunk/urlsigning/urlsigner.pl](http://gmaps-samples.googlecode.com/svn/trunk/urlsigning/urlsigner.pl), [Geo::Coder::Google::V3](https://metacpan.org/pod/Geo::Coder::Google::V3)