{"id":13305721,"url":"https://github.com/wescpy/google","last_synced_at":"2025-03-10T13:32:27.188Z","repository":{"id":189393041,"uuid":"631763430","full_name":"wescpy/google","owner":"wescpy","description":"Google developer code samples (mainly Python or Node.js)","archived":false,"fork":false,"pushed_at":"2024-09-10T03:07:17.000Z","size":116,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-10T09:12:45.102Z","etag":null,"topics":["gemini-api","google","google-ai","google-api","google-api-client-library","google-api-python-client","google-app-engine","google-apps-script","google-cloud","google-cloud-platform","google-drive","google-maps-api","google-sheets-api","google-workspace","gsuite","youtube-api"],"latest_commit_sha":null,"homepage":"http://dev.to/wescpy","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wescpy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-24T02:11:23.000Z","updated_at":"2024-09-10T03:07:20.000Z","dependencies_parsed_at":"2024-01-26T11:29:24.008Z","dependency_job_id":"acf41552-aa36-420d-98f9-e78e43c228b7","html_url":"https://github.com/wescpy/google","commit_stats":null,"previous_names":["wescpy/google"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wescpy%2Fgoogle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wescpy%2Fgoogle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wescpy%2Fgoogle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wescpy%2Fgoogle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wescpy","download_url":"https://codeload.github.com/wescpy/google/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221175760,"owners_count":16769881,"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","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":["gemini-api","google","google-ai","google-api","google-api-client-library","google-api-python-client","google-app-engine","google-apps-script","google-cloud","google-cloud-platform","google-drive","google-maps-api","google-sheets-api","google-workspace","gsuite","youtube-api"],"created_at":"2024-07-29T17:54:00.209Z","updated_at":"2025-03-10T13:32:27.178Z","avatar_url":"https://github.com/wescpy.png","language":"Python","readme":"# @wescpy Google blog code samples\n\n## Introduction\n\nThis repo contains developer code samples from the [**Coding #Python and #Google with @wescpy** blog](https://dev.to/wescpy) as well as older but still relevant content such as posts from [the old G Suite blog](https://gsuite-developers.googleblog.com/2015/) as well as @wescpy's [former Google/Python blog](https://wescpy.blogspot.com). Where possible and time-permitting, equivalent Node.js samples will be available as well.\n\n\n## Content structure\n\nSamples demonstrating only one product group are prefixed under the product group name (see table below) while cross-product samples will go into `multi`.\n\nDirectory | API families\n--- | ---\n[`apps`](/apps) | [Google Workspace](https://developers.google.com/gsuite) (\"GWS\"; formerly G Suite and Google Apps)\n[`cloud`](/cloud) | [Google Cloud](https://cloud.google.com) (Platform; \"GCP\")\n[`gemini`](/gemini) | [Gemini API](https://ai.google.dev/docs/gemini_api_overview)\n[`maps`](/maps) | [Google Maps](https://developers.google.com/maps) (Platform; \"GMP\")\n[`youtube`](/youtube) | [YouTube](https://developers.google.com/youtube)\n`multi` | (multi-product sample apps) [_N/A at this time_]\n[`videos`](/videos) | _(not really code)_ select related videos\n\u003cfigcaption\u003e\u003ci\u003eCode sample categories/folders\u003c/i\u003e\u003c/figcaption\u003e\n\n\n### Code samples\n\nThe chart below identifies the code samples and posts covering them:\n\nCode | Sample | Blog post\n--- | --- | ---\n[`apps/export-doc-pdf/`](/apps/export-doc-pdf) | Export Google Docs as PDF (Node.js \u0026 Python) | [Export Google Docs as PDF](https://dev.to/googleworkspace/export-google-docs-as-pdf-without-the-docs-api-9o4)\n[`apps/import-csv/`](/apps/import-csv) | Import CSV to Google Sheets (Node.js \u0026 Python) | [Import CSV to Google Sheets](https://dev.to/wescpy/import-csv-to-google-sheets-without-the-sheets-api-20g1)\n[`apps/md2docs/`](/apps/md2docs) | Basic Markdown-to-Google Docs converter (Node.js \u0026 Python) | [Basic Markdown-to-Google Docs converter](https://dev.to/googleworkspace/building-a-basic-markdown-to-google-docs-converter-1220)\n[`apps/sheets_display.py`](/apps/sheets_display.py) | Display contents of public Sheet | [API keys 2](https://dev.to/wescpy/getting-started-using-google-apis-api-keys-part-2-38i6)\n[`apps/drive_list.py`](https://github.com/wescpy/gsuite-apis-intro/blob/master/python/drive_list.py) (other repo) | Display first 100 files/folders in Google Drive (Python old auth) | [OAuth client ID 3](https://dev.to/wescpy/getting-started-using-google-apis-workspace-33-2me0)\n[`apps/drive_list-new.py`](http://github.com/wescpy/gsuite-apis-intro/blob/master/python/drive_list-new.py) (other repo) | Display first 100 files/folders in Google Drive (Python new auth) | [OAuth client ID 3](https://dev.to/wescpy/getting-started-using-google-apis-workspace-33-2me0)\n[`apps/drive_list.js`](http://github.com/wescpy/gsuite-apis-intro/blob/master/nodejs/drive_list.js) (other repo) | Display first 100 files/folders in Google Drive (Node.js CommonJS [`require`]) | [OAuth client ID 3](https://dev.to/wescpy/getting-started-using-google-apis-workspace-33-2me0)\n[`apps/drive_list.mjs`](http://github.com/wescpy/gsuite-apis-intro/blob/master/nodejs/drive_list.mjs) (other repo) | Display first 100 files/folders in Google Drive (Node.js ES Module [`import`]) | [OAuth client ID 3](https://dev.to/wescpy/getting-started-using-google-apis-workspace-33-2me0)\n\u0026nbsp; | \u0026nbsp; | \u0026nbsp;\n[`cloud/language/nlp_sent_query.py`](/cloud/language/nlp_sent_query.py) | Sentiment analysis of text using Natural Language API w/lower-level _platform_ Google APIs client library | [API keys 2](https://dev.to/wescpy/getting-started-using-google-apis-api-keys-part-2-38i6)\n[`cloud/language/nlp_sent_query-gcp.py`](/cloud/language/nlp_sent_query-gcp.py) | Sentiment analysis of text using Natural Language API w/higher-level _product_ GCP client library | [API keys 2](https://dev.to/wescpy/getting-started-using-google-apis-api-keys-part-2-38i6)\n[`cloud/appengine/`](/cloud/appengine) | App Engine \"Hello World!\" apps (Node.js \u0026 Python) | [Using App Engine in 2024](https://dev.to/wescpy/hosting-apps-in-the-cloud-with-google-app-engine-3fn)\n[`cloud/cloudrun/`](/cloud/cloudrun) | Cloud Run \"Hello World!\" apps (Node.js \u0026 Python) | [Modern app-hosting without servers](https://dev.to/wescpy/guide-to-modern-app-hosting-without-servers-on-google-cloud-37n8)\n[`cloud/transnatlang/`](/cloud/transnatlang) | Text-based language processing (Node.js \u0026 Python) | [Text-based language processing](https://dev.to/wescpy/text-based-language-processing-enhanced-with-aiml-1b1h)\n\u0026nbsp; | \u0026nbsp; | \u0026nbsp;\n[`gemini/*`](/gemini/) | Google AI Gemini API samples (Node.js \u0026 Python) | [Gemini API \"Hello World!\"](https://dev.to/wescpy/a-better-google-gemini-api-hello-world-sample-4ddm), [Gemini 102: Beyond \"Hello World!\"](https://dev.to/wescpy/gemini-api-102-next-steps-beyond-hello-world-1pb7), [Gemini 2.0 Audio](https://dev.to/wescpy/generate-audio-clips-with-gemini-20-flash-from-google-n0g)\n[`gemini/webgem/`](/gemini/webgem) | Google AI Gemini API web apps (Node.js \u0026 Python) | [Gemini 102a: Creating basic gen AI web apps](https://dev.to/wescpy/gemini-api-102a-putting-together-a-basic-genai-web-app-3e3)\n\u0026nbsp; | \u0026nbsp; | \u0026nbsp;\n[`maps/`](/maps) | Maps Geocoding, Directions, and Time Zone APIs (Node.js \u0026 Python) | [Explore the world with Maps APIs](https://dev.to/wescpy/explore-the-world-with-google-maps-apis-lhj)\n[`maps/maps_geocode.py`](/maps/maps_geocode.py) | Geolocate address with Maps Geocoding API | [API keys 2](https://dev.to/wescpy/getting-started-using-google-apis-api-keys-part-2-38i6) and [Explore the world with Maps APIs](https://dev.to/wescpy/explore-the-world-with-google-maps-apis-lhj)\n\u0026nbsp; | \u0026nbsp; | \u0026nbsp;\n[`youtube/`](/youtube) | Query for (public) YouTube videos (Node.js \u0026 Python) | [Intro to the YouTube APIs](https://dev.to/wescpy/intro-to-the-youtube-apis-searching-for-videos-5a0o)\n[`youtube/yt_video_query.py`](/youtube/yt_video_query.py) | Query for (public) YouTube videos (Python) | [API keys 2](https://dev.to/wescpy/getting-started-using-google-apis-api-keys-part-2-38i6) (and Intro to the YouTube APIs)\n\u003cfigcaption\u003e\u003ci\u003eCode sample table of contents\u003c/i\u003e\u003c/figcaption\u003e\n\n\u003c!-- maps/maps_static.* | Maps Static API (Node.js \u0026 Python) | The easiest Google API in the world! --\u003e\n\n## Support\n\n\"Support\" will be provided in a \"best-effort\" manner. Open to fixes and updates to existing samples and affected blog posts. File a \"bug\" against an existing sample with details. If there is a \"missing\" sample you are proposing that doesn't exist (whether you write the code and submit the PR or are requesting someone do it), also file a bug and state why it would benefit the community. Currently, only (server-side) Python and JavaScript (Node.js, Apps Script) samples are being considered.\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwescpy%2Fgoogle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwescpy%2Fgoogle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwescpy%2Fgoogle/lists"}