This commit is contained in:
JiriUhlir
2026-06-15 16:00:12 +02:00
parent d648589ac7
commit 8f7f8404c3
3 changed files with 325 additions and 7 deletions
+42
View File
@@ -36,9 +36,51 @@ Swagger obsahuje `GET /google/configuration`, ktery vypise podporovane env prome
- `GOOGLE_SERVICE_ACCOUNT_EMAIL`: `serviceAccountEmail`, `X-Google-Service-Account-Email`
- `GOOGLE_PRIVATE_KEY`: `privateKey`, `X-Google-Private-Key`
- `GOOGLE_SCOPES`: `scope`, `scopes`, `X-Google-Scopes`
- `GOOGLE_SERVICE_ACCOUNT_JSON`: `serviceAccountJson`, `serviceAccountJsonEnv`, `X-Google-Service-Account-Json`, `X-Google-Service-Account-Json-Env`
- `GOOGLE_ACCESS_TOKEN`: `Authorization: Bearer <token>`, `accessToken`, `accessTokenEnv`, `X-Google-Access-Token`, `X-Google-Access-Token-Env`
- `GOOGLE_API_KEY`: `apiKey`, `apiKeyEnv`, `X-Google-Api-Key`, `X-Google-Api-Key-Env`
### Service account JSON
Google service account JSON neobsahuje `access_token`. Obsahuje hlavne `client_email`, `private_key` a `token_uri`. Sluzba z techto poli sama vytvori JWT assertion, zavola Google OAuth token endpoint a ziska docasny `access_token`.
Produktove endpointy proto lze volat primo s:
- `serviceAccountJson` v body
- `X-Google-Service-Account-Json` header
- `serviceAccountJsonEnv` nebo `X-Google-Service-Account-Json-Env`, napr. `GOOGLE_SERVICE_ACCOUNT_JSON`
Je nutne dodat scopes:
- `serviceAccountScopes` v body
- `X-Google-Service-Account-Scopes` header
- nebo `GOOGLE_SCOPES`
Priklad pro zapis do Sheets:
```json
{
"spreadsheetUrl": "https://docs.google.com/spreadsheets/d/1abcDEFghiJKLmnopQRstuVWXyz/edit#gid=0",
"sheetName": "Objednavky",
"mode": "append",
"values": [
["2026-06-15", "ACME", 1234]
],
"serviceAccountScopes": [
"https://www.googleapis.com/auth/spreadsheets"
],
"serviceAccountJson": {
"type": "service_account",
"project_id": "project-id",
"private_key_id": "key-id",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "service-account@project-id.iam.gserviceaccount.com",
"client_id": "123456789",
"token_uri": "https://oauth2.googleapis.com/token"
}
}
```
### OAuth krok za krokem
1. Zavolej `GET /google/oauth/scopes`.