Google Tasks API og Zapier: API for avanserte brukere
Du vil ha en oppgave opprettet i Google Tasks hver gang et skjema sendes inn. Eller en Slack-melding når en lagkamerat fullfører en oppgave på felles lanseringsliste. Eller et nattlig skript som arkiverer forfalte oppgaver i et regneark.
Google har en Tasks API, og den fungerer. Men den har ingen webhooks, så “når en oppgave er fullført” betyr å sjekke hver liste med jevne mellomrom. Den vet ingenting om etiketter, tildelte personer eller tavler, fordi Google Tasks ikke har dette. Og hvert skript starter med et Google Cloud-prosjekt, et OAuth-samtykkeskjerm og en token-oppdateringsrutine.
TasksBoard tilbyr nå en offentlig REST API på toppen av dine Google Tasks-data, med personlige API-nøkler, webhooks signert med HMAC, og en Zapier-app. Denne guiden dekker hva den tilbyr, hvordan du får en nøkkel, de mest brukte endepunktene, hvordan webhooks og polling fungerer, og hvem dette er for. API-en er en del av Team-planen.
Hva TasksBoard API legger til Google Tasks
API-en leser og skriver til de samme Google Tasks-listene og oppgavene du ser i Gmail og Google Tasks-appen. Hver liste og oppgave-ID er Google Tasks-ID, så alt du bygger forblir kompatibelt med Google Tasks selv og andre verktøy som bruker Googles API.
På toppen av dette tilgjengeliggjør den det TasksBoard legger til:
- Etiketter og tildelte personer som egne felt. Google Tasks lagrer kun en tittel, notater og en frist; TasksBoard lagrer etiketter og den tildelte personen i notatene (etiketter på første linje, deretter
👤 Tildelt <epost>). API-en leser og skriver dem somlabelsogassignee, så friteksten inoteser det folk ser på tavlen. - Tavler: hvilke lister hver TasksBoard-tavle viser.
- Delte lister: en
shared-flagg på hver liste, og hendelser når en samarbeidspartner endrer en delt oppgave. - Webhooks for
task.created,task.updated,task.completedogtask.deleted.
Grunn-URL: https://api.tasksboard.com/v1. Svar er JSON under en data-nøkkel; feil kommer som { "error": { "code", "message", "details" } }, hvor code er stabil og details navngir ugyldige felt ved 422.
Opprett en API-nøkkel
Nøkler er personlige. En nøkkel opptrer som brukeren som opprettet den: hva enn den personen kan gjøre i Google Tasks, kan nøkkelen gjøre.
- I TasksBoard, klikk på avataren din og åpne Team, deretter API-fanen (eller gå direkte til
/team?tab=api). - Klikk for å opprette en nøkkel. Velg om den kan skrive; en nøkkel uten skrivetilgang får
403 forbiddenpå alle skriveforespørsler. - Kopier nøkkelen. Den starter med
tb_live_og vises kun én gang. - Send den som en bearer-token i hver forespørsel:
curl https://api.tasksboard.com/v1/lists \
-H "Authorization: Bearer tb_live_…"
Samme fane viser dine nøkler med deres tilgang, lar deg tilbakekalle en, og viser dine webhooks. Tilbakekall en nøkkel øyeblikkelig hvis den kan ha lekket; en ny tar bare noen sekunder.
Hovedendepunktene
En rask oversikt over ressursene. Full referanse, generert fra OpenAPI-definisjonen, finnes i hjelpesenteret: TasksBoard API-referanse.
Konto
GET /me: kontoen nøkkelen tilhører, dens plan og nøkkelens tilganger.
Lister
GET /lists: dine Google Tasks-lister, medsharedogboardId.POST /lists: opprett en liste (title).GET /lists/{listId}: én liste.
Oppgaver
GET /lists/{listId}/tasks: åpne oppgaver som standard;status=completedellerall,updatedAfter,dueBefore,dueAfter,includeDeleted.POST /lists/{listId}/tasks: opprett en oppgave medtitle,notes,due,labels,assignee,parent(gjør den til en deloppgave),previous(sett inn etter en søskenoppgave).GET /tasks/{taskId}?listId=: én oppgave. Google adresserer en oppgave etter liste og id, sålistIder påkrevd.PATCH /tasks/{taskId}: delvis oppdatering; sendnullfor å fjernenotes,due,labelsellerassignee;status: "open"gjenåpner en fullført oppgave.POST /tasks/{taskId}/complete: fullfør den.DELETE /tasks/{taskId}?listId=: slett den.
Tavler
GET /boards: dine tavler og liste-idene hver viser. Hovedtavlen er alltid først.
Webhooks
GET,POST /webhooks, ogGET,PATCH,DELETE /webhooks/{webhookId}.
Å opprette en oppgave med etikett og tildelt person ser slik ut:
curl -X POST https://api.tasksboard.com/v1/lists/LIST_ID/tasks \
-H "Authorization: Bearer tb_live_…" \
-H "Content-Type: application/json" \
-d '{"title": "Send Q3-rapporten", "due": "2026-10-24",
"labels": ["❗️Viktig"], "assignee": "bob@example.com"}'
Den tildelte må være en samarbeidspartner på listen (eller deg selv). Listeendepunkter returnerer meta.nextCursor når det er mer; send den tilbake som cursor med de samme filtrene.
- 60 forespørsler per minutt per nøkkel. Svar inkluderer X-RateLimit-Limit og X-RateLimit-Remaining; en 429 inkluderer Retry-After i sekunder. Google Tasks' egne kvoter gjelder i tillegg
- Frister er datoer. Google Tasks dropper klokkeslett; en frist kommer alltid tilbake som midnatt UTC
- 10 webhooks per konto, kun HTTPS-URLer
- Team-plan påkrevd. En nøkkel hvis eier forlater planen svarer med 403 team_plan_required
Webhooks: få varsel når en oppgave endres
Polling er svakheten i Google Tasks API. En webhook erstatter dette: TasksBoard kaller din URL når en oppgave opprettes, oppdateres, fullføres eller slettes.
- Registrer en webhook med hendelsene du ønsker:
curl -X POST https://api.tasksboard.com/v1/webhooks \
-H "Authorization: Bearer tb_live_…" \
-H "Content-Type: application/json" \
-d '{"url": "https://hooks.example.com/tasksboard",
"events": ["task.created", "task.completed"]}'
- Lagre
secretfra svaret. Den returneres kun én gang, kun i det svaret; du kan også oppgi din egen. - Svar på hver levering med en 2xx-status innen 10 sekunder.
Hver levering har tre headere: X-TasksBoard-Event (hendelsesnavn), X-TasksBoard-Delivery (leverings-id) og X-TasksBoard-Signature. Kroppen inneholder hendelsen, en createdAt-tidsstempel, forsøksnummeret, hele oppgaven under data.task, og en source: api for REST-kall, sync for endringer via delte lister, poll for 15-minutters poll beskrevet nedenfor.
Verifiser signaturen
Signaturheaderen har formen t=<unix-sekunder>,v1=<hex>, hvor v1 er HMAC-SHA256 av "<t>.<raw body>" med din hemmelighet. Beregn HMAC over den rå forespørselen nøyaktig som mottatt, før JSON-parsing, og avvis tidsstempler som er for gamle:
const crypto = require("crypto")
function verify(secret, rawBody, header, toleranceSeconds = 300) {
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")))
if (Math.abs(Date.now() / 1000 - Number(parts.t)) > toleranceSeconds) return false
const expected = crypto.createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex")
return crypto.timingSafeEqual(Buffer.from(parts.v1, "hex"), Buffer.from(expected, "hex"))
}
Gjentakelser og deaktivering
Mislykkede leveringer gjentas opptil 3 ganger med økende mellomrom. Etter 20 påfølgende feil deaktiveres webhooken (active: false) til du reaktiverer den med PATCH /webhooks/{id} og "active": true. API-fanen på Teamsiden viser hver webhook med URL, hendelser og en Aktiv eller Deaktivert-badge, så en død endepunkt er lett å oppdage.
Polling for lister som ikke deles
Hvor kommer webhook-hendelser fra? Fra tre steder: API-ens egne skrivinger, endringer på delte lister, og, hvis du slår det på, en poll av dine andre lister.
Det siste er viktig. En endring gjort i Gmail eller Google Tasks-appen på en liste som ikke deles, observeres ikke av TasksBoard med mindre noe ser på listen. På API-fanen, slå på poll mine lister hver 15. minutt: TasksBoard sjekker da disse listene på det tidsskjemaet og sender hendelser med source: "poll". Uten dette produserer kun delte lister og API-skrifter hendelser.
Hvis du kun trenger å reagere på endringer i listene teamet ditt deler, la polling være av.
Zapier
Ikke alle vil skrive kode. TasksBoard-appen for Zapier autentiserer med samme personlige API-nøkkel og tilbyr:
- Utløsere: Ny Oppgave, Oppgave Fullført. Begge poller
GET /lists/{listId}/tasksmedupdatedAfter, samme metode du ville brukt i ditt eget skript. - Handlinger: Opprett Oppgave, Fullfør Oppgave, Opprett Liste.
Zapier-integrasjonen publiseres. Når den er listet, søker du etter TasksBoard i Zapier, limer inn nøkkelen når du blir bedt om det og velger en liste. Inntil da dekker REST API og webhooks det samme, og utløserne og handlingene ovenfor gir deg en forventning. For et bredere blikk på automatiseringsmuligheter, se vår guide til Google Tasks-integrasjoner.
Delte lister, roller, en aktivitetslogg og en REST API med webhooks, på toppen av Google Tasks du allerede bruker. En regning for hele teamet.
Se planer →Hvem dette er for
API-en er en Team-plan-funksjon, og passformen er spesifikk:
- Team med en delt liste som sannhetskilde. En webhook på
task.completedmedsource: "sync"utløses når en samarbeidspartner fullfører en oppgave, uansett app de brukte. Dette er krok for en Slack-melding, en rad i Sheets eller en billettoppdatering. - Operasjonsfolk som kobler verktøy sammen. Skjemaer, CRMer og supportsystemer kan opprette oppgaver med etikett og tildelt person i ett kall, og oppgaven vises på riktig persons tavle og i deres Google Tasks-app.
- Utviklere som prøvde Google Tasks API og stoppet ved polling, OAuth-oppsett eller manglende tildelinger. En nøkkel, en header, Googles egne id-er.
Det er ikke for å erstatte Googles API helt. Hvis du kun trenger dine egne oppgaver i et personlig skript og allerede har en OAuth-klient, er Googles API gratis og gjør jobben. Vår Google Tasks eksportguide dekker enkelttilfellene.
FAQ
Konklusjon
Google Tasks har en API, men ingen webhooks, ingen etiketter eller tildelte personer, og et oppsettskostnad som stopper de fleste små automatiseringer før de starter. TasksBoard API beholder Googles id-er og legger til de manglende delene: en personlig nøkkel du oppretter på et minutt, endepunkter for lister, oppgaver og tavler, webhooks du kan verifisere, valgfri polling for udelte lister, og en Zapier-app på vei.
Opprett en nøkkel på API-fanen på Teamsiden, gjør ett GET /lists-kall, og resten følger fra API-referansen.
Klar til å dele dine Google Tasks?
Kom i gang med TasksBoard gratis, ingen kredittkort kreves.
Logg inn

