API::Google - Perl library for easy access to Google services via their API
version 0.12
use API::Google;
my $gapi = API::Google->new({ tokensfile => 'config.json' });
$gapi->refresh_access_token_silent('[email protected]');
$gapi->api_query({
method => 'post',
route => 'https://www.googleapis.com/calendar/v3/calendars/'.$calendar_id.'/events',
user => '[email protected]'
}, $json_payload_if_post);
config.json must be structured like:
{ "gapi":
{
"client_id": "001122334455-abcdefghijklmnopqrstuvwxyz012345.apps.googleusercontent.com",
"client_secret": "1ayL76NlEKjj85eZOipFZkyM",
"tokens": {
"[email protected]": {
"refresh_token": "1/cI5jWSVnsUyCbasCQpDmz8uhQyfnWWphxvb1ST3oTHE",
"access_token": "ya29.Ci-KA8aJYEAyZoxkMsYbbU9H_zj2t9-7u1aKUtrOtak3pDhJvCEPIdkW-xg2lRQdrA"
},
"[email protected]": {
"access_token": "ya29.Ci-KAzT9JpaPriZ-ugON4FnANBXZexTZOz-E6U4M-hjplbIcMYpTbo0AmGV__tV5FA",
"refresh_token": "1/_37lsRFSRaUJkAAAuJIRXRUueft5eLWaIsJ0lkJmEMU"
}
}
}
}
You can easily generate such config with goauth CLI tool inluded in this package
Get new access token for user from Google API server and store it in jsonfile
Keep access_token in headers always actual
$gapi->build_http_transactio($user);
$gapi->build_http_transaction({
user => '[email protected]',
method => 'post',
route => 'https://www.googleapis.com/calendar/users/me/calendarList',
payload => { key => value }
})
Low-level method that can make API query to any Google service
Required params: method, route, user
Examples of usage:
$gapi->api_query({
method => 'get',
route => 'https://www.googleapis.com/calendar/users/me/calendarList'',
user => '[email protected]'
});
$gapi->api_query({
method => 'post',
route => 'https://www.googleapis.com/calendar/v3/calendars/'.$calendar_id.'/events',
user => '[email protected]'
}, $json_payload_if_post);
Pavel Serikov [email protected]
This software is copyright (c) 2016 by Pavel Serikov.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.