Google made their API so hard to understand, so after struggling with their documentation for their Tasks API I've found this repository that has a well written abstraction around the Tasks API.
This package contains the code from the above repository with some additions I made to make it easy to embed in your web application.
If you're using Node:
npm i google-tasks-apiOr, if you're using plain JavaScript, just add the following script tag:
<script src="https://cdn.jsdelivr.net/npm/google-tasks-api@latest/dist/index.min.js"></script>You must have a client ID to use Google Tasks API, to get one, go to Google APIs Console and create a new project, then go to Credentials and click on Create credentials.
Choose OAuth client ID, then under application type choose Other, press Create and copy the client ID.
If you're on Node, import the API using: (You can skip that if you're not using Node)
import googleTasksApi from 'google-tasks-api'or
const googleTasksApi = require('google-tasks-api')Now you can start using the API. Start by autorizing:
await googleTasksAPI.autorize('yourclientid')That will promote a popup to the user asking him for permission, after he accepts, the promise will resolve and you will be able to use the following self-explaining methods:
| Method | Return Type | Description |
|---|---|---|
listTaskLists() |
Promise<[]> |
Returns a list of task lists |
insertTaskList({ title }) |
Promise<> |
Receives an object with a title, and creates a new task list |
updateTaskList({ taskListId, title }) |
Promise<> |
Receives an object with a taskListId to update and a title, and updates the task list title |
deleteTaskList({ taskListId }) |
Promise<> |
Deletes a task list |
listTasks({ taskListId }) |
Promise<[]> |
Lists the tasks of taskListId |
insertTask({ taskListId, ...params }) |
Promise<> |
Creates a task in taskListId, a task may have the following fields |
updateTask({ taskListId, taskId, ...params }) |
Promise<> |
Updates a task by its id and task list id |
deleteTask({ taskListId, taskId }) |
Promise<> |
Deletes task taskId in list taskListId |
Any type of feedback, pull request or issue is welcome.
This project is licensed under the MIT License