Google TasksAPIWebhooksZapierAutomatisering

Google Tasks API og Zapier: API for avanserte brukere

TasksBoard Team
TasksBoard Team
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 som labels og assignee, så friteksten i notes er 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.completed og task.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.

  1. I TasksBoard, klikk på avataren din og åpne Team, deretter API-fanen (eller gå direkte til /team?tab=api).
  2. Klikk for å opprette en nøkkel. Velg om den kan skrive; en nøkkel uten skrivetilgang får 403 forbidden på alle skriveforespørsler.
  3. Kopier nøkkelen. Den starter med tb_live_ og vises kun én gang.
  4. 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, med shared og boardId.
  • POST /lists: opprett en liste (title).
  • GET /lists/{listId}: én liste.

Oppgaver

  • GET /lists/{listId}/tasks: åpne oppgaver som standard; status=completed eller all, updatedAfter, dueBefore, dueAfter, includeDeleted.
  • POST /lists/{listId}/tasks: opprett en oppgave med title, 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å listId er påkrevd.
  • PATCH /tasks/{taskId}: delvis oppdatering; send null for å fjerne notes, due, labels eller assignee; 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, og GET, 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.

Begrensninger å planlegge rundt
  • 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.

  1. 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"]}'
  1. Lagre secret fra svaret. Den returneres kun én gang, kun i det svaret; du kan også oppgi din egen.
  2. 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}/tasks med updatedAfter, 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.

TasksBoard logo Prøv TasksBoard Team

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.completed med source: "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

Har Google Tasks API webhooks?
Nei. Googles Tasks API har ingen push-varsler for oppgaveendringer, så integrasjoner poller med jevne mellomrom. TasksBoard API legger til webhooks for task.created, task.updated, task.completed og task.deleted, signert med HMAC-SHA256.
Dukker oppgaver opprettet via API opp i Google Tasks-appen?
Ja. API-en skriver til dine Google Tasks-lister, og hver id er Googles egen. Etiketter og tildelt person vises som tekst øverst i oppgavens notater i Googles apper, fordi det er der TasksBoard lagrer dem.
Hvorfor utløser ikke webhook min for en oppgave jeg fullførte i Gmail?
Hvis listen ikke deles, observerer TasksBoard kun endringer i Googles apper når "poll mine lister hver 15. minutt" er på i Team → API. Slå det på, og forvent hendelsen innen neste poll. Endringer på delte lister kommer når listen synkroniseres.
Er Zapier-appen tilgjengelig nå?
TasksBoard-appen for Zapier publiseres. Den bruker samme personlige API-nøkkel og tilbyr Ny Oppgave og Oppgave Fullført-utløsere, og Opprett Oppgave, Fullfør Oppgave og Opprett Liste-handlinger. REST API og webhooks er tilgjengelige i dag.

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