https://github.com/grokify/gogoogle
Google API helpers in Golang. The folder structure is designed to be similar to the Google Go API Client here: https://github.com/google/google-api-go-client
https://github.com/grokify/gogoogle
Last synced: 4 months ago
JSON representation
Google API helpers in Golang. The folder structure is designed to be similar to the Google Go API Client here: https://github.com/google/google-api-go-client
- Host: GitHub
- URL: https://github.com/grokify/gogoogle
- Owner: grokify
- License: mit
- Created: 2017-11-21T21:21:20.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2026-02-07T20:43:32.000Z (4 months ago)
- Last Synced: 2026-02-08T01:43:36.124Z (4 months ago)
- Language: Go
- Homepage:
- Size: 1.74 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go Google
[![Build Status][build-status-svg]][build-status-url]
[![Lint Status][lint-status-svg]][lint-status-url]
[![Go Report Card][goreport-svg]][goreport-url]
[![Docs][docs-godoc-svg]][docs-godoc-url]
[![License][license-svg]][license-url]
[build-status-svg]: https://github.com/grokify/gogoogle/actions/workflows/ci.yaml/badge.svg?branch=master
[build-status-url]: https://github.com/grokify/gogoogle/actions/workflows/ci.yaml
[lint-status-svg]: https://github.com/grokify/gogoogle/actions/workflows/lint.yaml/badge.svg?branch=master
[lint-status-url]: https://github.com/grokify/gogoogle/actions/workflows/lint.yaml
[goreport-svg]: https://goreportcard.com/badge/github.com/grokify/gogoogle
[goreport-url]: https://goreportcard.com/report/github.com/grokify/gogoogle
[docs-godoc-svg]: https://pkg.go.dev/badge/github.com/grokify/gogoogle
[docs-godoc-url]: https://pkg.go.dev/github.com/grokify/gogoogle
[license-svg]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/grokify/gogoogle/blob/master/LICENSE
`gogoogle` is a set of generic, higher-level libraries for interacting with Google APIs using Go. It is built on the official [Google API Go Client](https://github.com/google/google-api-go-client) and [Google Cloud Go](https://github.com/googleapis/google-cloud-go) libraries.
## Installation
```bash
go get github.com/grokify/gogoogle
```
## Packages
### Gmail (`gmailutil/v1`)
Comprehensive Gmail API helper library for message operations, label management, and mail merge functionality.
- List and retrieve messages with filtering options (by sender, category, labels)
- Batch delete messages
- Send emails with the `mailutil.MessageWriter` interface
- Mail merge with Mustache templates and Google Sheets data sources
- Label management
### Google Sheets (`sheetsutil`)
Utilities for reading and writing Google Sheets data with typed structures.
- **sheetsutil/v4/sheetsmap** - Maps sheet data to Go types with enum validation and column management
- **sheetsutil/iwark** - Low-level spreadsheet operations using the [Iwark spreadsheet](https://github.com/Iwark/spreadsheet) library
### Google Slides (`slidesutil/v1`)
Comprehensive Google Slides manipulation library.
- Create presentations with title slides
- Add slides with various layouts (title/body, main point, image sidebars)
- Create and style text boxes, tables, lines, and shapes
- Markdown-to-Slides conversion with bulleted lists, text styling, and links
- Batch update operations
- Color utilities for RGB/hex conversion
### Google Maps (`mapsutil/staticmap`)
Generate Google Static Maps with customizable markers.
- Configure map center, zoom, and dimensions
- Add styled markers with colors and labels
- Preset regions (USA, Europe, World)
- Download maps as PNG files
### Speech-to-Text (`speechtotext`)
Wrapper for Google's Speech-to-Text API.
- Transcribe audio from byte data or files
- Confidence threshold filtering
### Text-to-Speech (`texttospeech/v1beta1`)
Wrapper for Google's Text-to-Speech API.
- Synthesize speech from text
- Multiple voice options (WaveNet neural, standard)
- Multiple audio formats (MP3, LINEAR16, OGG_OPUS)
### Data Loss Prevention (`dlp/v2`)
Helper functions for Google's DLP API to detect sensitive information.
- Create content items for DLP inspection
- Pre-defined info types (credit cards, SSNs, person names, US states)
### BigQuery (`bigqueryutil`)
Utilities for streaming data uploads to BigQuery.
- Automatic chunking for large uploads (max 10,000 items per operation)
- Error handling for batch insert operations
### Google Docs (`docsutil`)
URL parsing and construction for Google Docs and Sheets.
- Parse document IDs from URLs
- Build document URLs from IDs
### Authentication (`auth`)
Simplified OAuth2 setup for Google APIs.
- Token management with file-based storage
- Token refresh support
## Related Libraries
- OAuth 2.0 utilities via [`goauth/google`](https://github.com/grokify/goauth/tree/master/google)
- OAuth 2.0 demo app via [`beegoutil`](https://github.com/grokify/beegoutil)