JiriUhlir 54247186cf rozsireni
2026-06-15 15:19:01 +02:00
2026-06-15 15:19:01 +02:00
2026-06-15 15:19:01 +02:00
2026-06-15 11:34:26 +00:00
2026-06-15 11:34:26 +00:00
2026-06-15 15:12:15 +02:00
2026-06-15 15:19:01 +02:00

google-service

Node.js TypeScript sluzba pro komunikaci s Google API za AppFactory reverse proxy.

Endpointy

  • GET /
  • GET /health
  • GET /docs
  • GET /openapi.json
  • GET /google/discovery/apis
  • GET /google/discovery/apis/{api}/{version}/rest
  • POST /google/oauth/token
  • POST /google/oauth/service-account-token
  • POST /google/oauth/revoke
  • GET /google/oauth/tokeninfo
  • GET|POST|PATCH|DELETE /google/calendar/...
  • GET|POST|PUT /google/sheets/...
  • GET|POST|PATCH|DELETE /google/drive/...
  • GET|POST /google/gmail/...
  • GET|POST /google/docs/...
  • GET|POST /google/slides/...
  • GET|POST /google/forms/...
  • GET|POST|PATCH|DELETE /google/people/...
  • GET|POST|PATCH|DELETE /google/tasks/...
  • POST /google/request

Konfigurace

Volitelne environment variables:

  • ROOT_PATH - verejny prefix za AppFactory proxy, napr. /apps/google-service
  • PORT - port aplikace, vychozi hodnota je 3000
  • GOOGLE_CLIENT_ID a GOOGLE_CLIENT_SECRET - OAuth client pro authorization code a refresh token flow
  • GOOGLE_SERVICE_ACCOUNT_EMAIL, GOOGLE_PRIVATE_KEY, GOOGLE_SCOPES - service account JWT flow
  • GOOGLE_API_KEY - API key pro Google API, ktere ji podporuji

Secrets se nevraci v zadnem endpointu a neloguji se.

Obecne volani Google API

POST /google/request umi volat libovolny HTTPS endpoint na Google domene. Autorizace muze jit pres:

  • Authorization: Bearer <token> header na requestu do sluzby
  • accessToken v body
  • accessTokenEnv v body, napr. GOOGLE_ACCESS_TOKEN
  • GOOGLE_API_KEY, apiKey nebo apiKeyEnv pro endpointy podporujici API key

Priklad:

{
  "method": "GET",
  "baseUrl": "https://www.googleapis.com",
  "path": "/drive/v3/files",
  "query": {
    "pageSize": 10
  },
  "accessTokenEnv": "GOOGLE_ACCESS_TOKEN"
}

Konkretni Google API wrappery

Sluzba ma konkretni endpointy pro bezne Google produkty, aby klient nemusel skladat cilove Google URL sam:

  • Calendar: kalendare, eventy, presun eventu
  • Sheets: spreadsheet metadata, batch update, cteni hodnot, update hodnot, append, batch clear
  • Drive: soubory, export, opravneni
  • Gmail: profil, zpravy, odeslani zpravy, labels
  • Docs: vytvoreni dokumentu, nacteni dokumentu, batch update
  • Slides: vytvoreni prezentace, nacteni prezentace, batch update
  • Forms: vytvoreni formulare, nacteni formulare, batch update, responses
  • People: connections, kontakt, vytvoreni/uprava/smazani kontaktu
  • Tasks: task lists, tasky, uprava/smazani tasku

Autorizace je stejna jako u obecne proxy: Authorization: Bearer <token>, pripadne accessToken, accessTokenEnv, apiKey nebo apiKeyEnv v JSON body.

Priklad vytvoreni udalosti:

POST /google/calendar/calendars/primary/events
{
  "summary": "Schuzka",
  "start": {
    "dateTime": "2026-06-15T10:00:00+02:00"
  },
  "end": {
    "dateTime": "2026-06-15T11:00:00+02:00"
  }
}

Priklad append do Google Sheets:

POST /google/sheets/spreadsheets/{spreadsheetId}/values/append?range=Sheet1!A1
{
  "majorDimension": "ROWS",
  "values": [
    ["A", "B", "C"]
  ]
}
S
Description
No description provided
Readme 127 KiB
Languages
TypeScript 99.7%
Dockerfile 0.3%