{"id":26426375,"url":"https://github.com/pavelsr/moo-google","last_synced_at":"2025-09-02T01:37:05.482Z","repository":{"id":56832770,"uuid":"92451765","full_name":"pavelsr/moo-google","owner":"pavelsr","description":"Perl library for working with all google services. Moose-based, uses Google API discovery","archived":false,"fork":false,"pushed_at":"2018-10-02T00:34:24.000Z","size":46,"stargazers_count":0,"open_issues_count":8,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-02T01:37:00.994Z","etag":null,"topics":["google-apis","perl"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pavelsr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-25T23:09:52.000Z","updated_at":"2017-05-25T23:10:41.000Z","dependencies_parsed_at":"2022-09-08T01:41:22.721Z","dependency_job_id":null,"html_url":"https://github.com/pavelsr/moo-google","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pavelsr/moo-google","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelsr%2Fmoo-google","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelsr%2Fmoo-google/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelsr%2Fmoo-google/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelsr%2Fmoo-google/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pavelsr","download_url":"https://codeload.github.com/pavelsr/moo-google/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelsr%2Fmoo-google/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273218421,"owners_count":25065913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["google-apis","perl"],"created_at":"2025-03-18T03:29:44.580Z","updated_at":"2025-09-02T01:37:05.449Z","avatar_url":"https://github.com/pavelsr.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nWebService::Google::Client - Server-side client library for any Google App API. Based on Moose\n\n# VERSION\n\nversion 0.03\n\n# SYNOPSIS\n\n    use WebService::Google::Client;\n\n    my $gapi = WebService::Google::Client-\u003enew(debug =\u003e 0); # my $gapi = WebService::Google::Client-\u003enew(access_token =\u003e '');\n    my $user = 'pavelsr@cpan.org'; # full gmail\n\n    $gapi-\u003eauth_storage-\u003esetup({type =\u003e 'jsonfile', path =\u003e '/path' }); # by default\n    # $gapi-\u003eauth_storage-\u003esetup({ type =\u003e 'dbi', path =\u003e 'DBI object' });\n    # $gapi-\u003eauth_storage-\u003esetup({ type =\u003e 'mongodb', path =\u003e 'details' });\n\n    $gapi-\u003euser($user);\n    $gapi-\u003edo_autorefresh(1);\n\n    my $r1 = $gapi-\u003eCalendar-\u003eEvents-\u003elist({ calendarId =\u003e 'primary' })-\u003ejson;\n    warn scalar @{$r1-\u003e{items}};\n\nTo create authorization file with tokens in current folder run _goauth_ CLI tool\n\nSee unit test in xt folder for more examples\n\n# KEY FEATURES\n\n- Object-oriented calls by API-\u003eResource-\u003emethod schema. Like $gapi-\u003eCalendar-\u003eEvents-\u003elists\n- Classes are generated dynamically using [Moose::Meta::Class](https://metacpan.org/pod/Moose::Meta::Class) based on Google API Discovery Service\n- Different app credentials (client\\_id, client\\_secret, users access\\_token \u0026\u0026 refresh\\_token) storage - json file, DBI, MongoDB (u can add your own even)\n- Automatic access\\_token refresh (if user has refresh\\_token) and saving refreshed token to storage\n- CLI tool (_goauth_) with lightweight server for easy OAuth2 authorization and getting access\\_ and refresh\\_ tokens\n\n# SEE ALSO\n\n[API::Google](https://metacpan.org/pod/API::Google) - my old lib\n\n[Google::API::Client](https://metacpan.org/pod/Google::API::Client) - source of inspiration\n\n# SUPPORTED APIs\n\n    acceleratedmobilepageurl : v1 : https://developers.google.com/amp/cache/\n    adexchangebuyer : v1.2,v1.3,v1.4 : https://developers.google.com/ad-exchange/buyer-rest\n    adexchangebuyer2 : v2beta1 : https://developers.google.com/ad-exchange/buyer-rest/guides/client-access/\n    adexchangeseller : v1,v1.1,v2.0 : https://developers.google.com/ad-exchange/seller-rest/\n    admin : datatransfer_v1,directory_v1,reports_v1 : https://developers.google.com/admin-sdk/data-transfer/,https://developers.google.com/admin-sdk/directory/,https://developers.google.com/admin-sdk/reports/\n    adsense : v1.3,v1.4 : https://developers.google.com/adsense/management/\n    adsensehost : v4.1 : https://developers.google.com/adsense/host/\n    analytics : v2.4,v3 : https://developers.google.com/analytics/\n    analyticsreporting : v4 : https://developers.google.com/analytics/devguides/reporting/core/v4/\n    androidenterprise : v1 : https://developers.google.com/android/work/play/emm-api\n    androidpublisher : v1,v1.1,v2 : https://developers.google.com/android-publisher\n    appengine : v1alpha,v1beta,v1,v1beta4,v1beta5 : https://cloud.google.com/appengine/docs/admin-api/\n    appsactivity : v1 : https://developers.google.com/google-apps/activity/\n    appstate : v1 : https://developers.google.com/games/services/web/api/states\n    bigquery : v2 : https://cloud.google.com/bigquery/\n    blogger : v2,v3 : https://developers.google.com/blogger/docs/2.0/json/getting_started,https://developers.google.com/blogger/docs/3.0/getting_started\n    books : v1 : https://developers.google.com/books/docs/v1/getting_started\n    calendar : v3 : https://developers.google.com/google-apps/calendar/firstapp\n    civicinfo : v2 : https://developers.google.com/civic-information\n    classroom : v1 : https://developers.google.com/classroom\n    cloudbilling : v1 : https://cloud.google.com/billing/\n    cloudbuild : v1 : https://cloud.google.com/container-builder/docs/\n    clouddebugger : v2 : http://cloud.google.com/debugger\n    clouderrorreporting : v1beta1 : https://cloud.google.com/error-reporting/\n    cloudfunctions : v1,v1beta2 : https://cloud.google.com/functions\n    cloudkms : v1 : https://cloud.google.com/kms/\n    cloudmonitoring : v2beta2 : https://cloud.google.com/monitoring/v2beta2/\n    cloudresourcemanager : v1,v1beta1 : https://cloud.google.com/resource-manager\n    cloudtrace : v1 : https://cloud.google.com/trace\n    clouduseraccounts : alpha,beta,vm_alpha,vm_beta : https://cloud.google.com/compute/docs/access/user-accounts/api/latest/\n    compute : alpha,beta,v1 : https://developers.google.com/compute/docs/reference/latest/\n    Use of uninitialized value in join or string at lib/Moo/Google/Discovery.pm line 139.\n    consumersurveys : v2 :\n    container : v1 : https://cloud.google.com/container-engine/\n    content : v2sandbox,v2 : https://developers.google.com/shopping-content\n    customsearch : v1 : https://developers.google.com/custom-search/v1/using_rest\n    dataflow : v1b3 : https://cloud.google.com/dataflow\n    dataproc : v1alpha1,v1,v1beta1 : https://cloud.google.com/dataproc/\n    datastore : v1,v1beta3 : https://cloud.google.com/datastore/\n    deploymentmanager : alpha,v2beta,v2 : https://cloud.google.com/deployment-manager/,https://developers.google.com/deployment-manager/\n    dfareporting : v2.6,v2.7 : https://developers.google.com/doubleclick-advertisers/\n    discovery : v1 : https://developers.google.com/discovery/\n    dlp : v2beta1 : https://cloud.google.com/dlp/docs/\n    dns : v1,v2beta1 : https://developers.google.com/cloud-dns\n    doubleclickbidmanager : v1 : https://developers.google.com/bid-manager/\n    doubleclicksearch : v2 : https://developers.google.com/doubleclick-search/\n    drive : v2,v3 : https://developers.google.com/drive/\n    firebasedynamiclinks : v1 : https://firebase.google.com/docs/dynamic-links/\n    firebaserules : v1 : https://firebase.google.com/docs/storage/security\n    fitness : v1 : https://developers.google.com/fit/rest/\n    fusiontables : v1,v2 : https://developers.google.com/fusiontables\n    games : v1 : https://developers.google.com/games/services/\n    gamesConfiguration : v1configuration : https://developers.google.com/games/services\n    gamesManagement : v1management : https://developers.google.com/games/services\n    genomics : v1alpha2,v1 : https://cloud.google.com/genomics\n    gmail : v1 : https://developers.google.com/gmail/api/\n    groupsmigration : v1 : https://developers.google.com/google-apps/groups-migration/\n    groupssettings : v1 : https://developers.google.com/google-apps/groups-settings/get_started\n    iam : v1 : https://cloud.google.com/iam/\n    identitytoolkit : v3 : https://developers.google.com/identity-toolkit/v3/\n    kgsearch : v1 : https://developers.google.com/knowledge-graph/\n    language : v1,v1beta1,v1beta2 : https://cloud.google.com/natural-language/\n    licensing : v1 : https://developers.google.com/google-apps/licensing/\n    logging : v2,v2beta1 : https://cloud.google.com/logging/docs/\n    manufacturers : v1 : https://developers.google.com/manufacturers/\n    mirror : v1 : https://developers.google.com/glass\n    ml : v1,v1beta1 : https://cloud.google.com/ml/\n    monitoring : v3 : https://cloud.google.com/monitoring/api/\n    oauth2 : v1,v2 : https://developers.google.com/accounts/docs/OAuth2\n    pagespeedonline : v1,v2 : https://developers.google.com/speed/docs/insights/v1/getting_started,https://developers.google.com/speed/docs/insights/v2/getting-started\n    partners : v2 : https://developers.google.com/partners/\n    people : v1 : https://developers.google.com/people/\n    playmoviespartner : v1 : https://developers.google.com/playmoviespartner/\n    plus : v1 : https://developers.google.com/+/api/\n    plusDomains : v1 : https://developers.google.com/+/domains/\n    prediction : v1.2,v1.3,v1.4,v1.5,v1.6 : https://developers.google.com/prediction/docs/developer-guide\n    proximitybeacon : v1beta1 : https://developers.google.com/beacons/proximity/\n    pubsub : v1beta1a,v1,v1beta2 : https://cloud.google.com/pubsub/docs\n    qpxExpress : v1 : http://developers.google.com/qpx-express\n    replicapool : v1beta1,v1beta2 : https://developers.google.com/compute/docs/replica-pool/,https://developers.google.com/compute/docs/instance-groups/manager/v1beta2\n    replicapoolupdater : v1beta1 : https://cloud.google.com/compute/docs/instance-groups/manager/#applying_rolling_updates_using_the_updater_service\n    reseller : v1 : https://developers.google.com/google-apps/reseller/\n    resourceviews : v1beta1,v1beta2 : https://developers.google.com/compute/\n    runtimeconfig : v1,v1beta1 : https://cloud.google.com/deployment-manager/runtime-configurator/\n    safebrowsing : v4 : https://developers.google.com/safe-browsing/\n    script : v1 : https://developers.google.com/apps-script/execution/rest/v1/scripts/run\n    searchconsole : v1 : https://developers.google.com/webmaster-tools/search-console-api/\n    servicecontrol : v1 : https://cloud.google.com/service-control/\n    servicemanagement : v1 : https://cloud.google.com/service-management/\n    serviceuser : v1 : https://cloud.google.com/service-management/\n    sheets : v4 : https://developers.google.com/sheets/\n    siteVerification : v1 : https://developers.google.com/site-verification/\n    slides : v1 : https://developers.google.com/slides/\n    sourcerepo : v1 : https://cloud.google.com/eap/cloud-repositories/cloud-sourcerepo-api\n    spanner : v1 : https://cloud.google.com/spanner/\n    spectrum : v1explorer : http://developers.google.com/spectrum\n    speech : v1beta1 : https://cloud.google.com/speech/\n    sqladmin : v1beta3,v1beta4 : https://cloud.google.com/sql/docs/reference/latest\n    storage : v1,v1beta1,v1beta2 : https://developers.google.com/storage/docs/json_api/\n    storagetransfer : v1 : https://cloud.google.com/storage/transfer\n    supportcases : v2 : https://sites.google.com/a/google.com/cases/\n    Use of uninitialized value in join or string at lib/Moo/Google/Discovery.pm line 139.\n    surveys : v2 :\n    tagmanager : v1,v2 : https://developers.google.com/tag-manager/api/v1/,https://developers.google.com/tag-manager/api/v2/\n    taskqueue : v1beta1,v1beta2 : https://developers.google.com/appengine/docs/python/taskqueue/rest\n    tasks : v1 : https://developers.google.com/google-apps/tasks/firstapp\n    toolresults : v1beta3firstparty,v1beta3 : https://firebase.google.com/docs/test-lab/\n    tracing : v2 : https://cloud.google.com/trace\n    translate : v2 : https://developers.google.com/translate/v2/using_rest\n    urlshortener : v1 : https://developers.google.com/url-shortener/v1/getting_started\n    vision : v1 : https://cloud.google.com/vision/\n    webfonts : v1 : https://developers.google.com/fonts/docs/developer_api\n    webmasters : v3 : https://developers.google.com/webmaster-tools/\n    youtube : v3 : https://developers.google.com/youtube/v3\n    youtubeAnalytics : v1,v1beta1 : http://developers.google.com/youtube/analytics/\n    youtubereporting : v1 : https://developers.google.com/youtube/reporting/v1/reports/\n\n# AUTHOR\n\nPavel Serikov \u003cpavelsr@cpan.org\u003e\n\n# COPYRIGHT AND LICENSE\n\nThis software is copyright (c) 2017 by Pavel Serikov.\n\nThis is free software; you can redistribute it and/or modify it under\nthe same terms as the Perl 5 programming language system itself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavelsr%2Fmoo-google","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpavelsr%2Fmoo-google","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavelsr%2Fmoo-google/lists"}