Unofficial API for TickTick.com
Project description
ticktick-py
Unofficial TickTick API Client for Python 3
Full Documentation
Description
ticktick-py
is an unofficial API library for interacting with TickTick.com.
It allows
users a way to interact with their TickTick account
using Python.
Features
The library automatically fetches all the tasks, tags, lists, and more linked to your profile and stores them in a
dictionary named state
.
- Tasks
- Create, Update, and Delete Tasks
- Acquire all your uncompleted tasks
- Move tasks easily between projects
- Acquire all completed tasks in a certain date range
- Tags
- Batch create, update, and delete tags
- Create tags with parameters that are not usually allowed:
\\ / " # : * ? < > | Space
- Projects
- Batch create, update, and delete 'lists' (projects)
- Batch archive projects
Example: Creating A Task
Lets create a task in our inbox
titled "Get Groceries"
name = 'Get Groceries' # Task Name
local_task = client.task.builder(name) # Create a dictionary for the task
groceries = client.task.create(local_task) # Actually create the task
Result
A simplified dictionary for the newly created task is returned.
print(groceries)
{'id': '60c6a40b8f083f896c9444a0', 'projectId': 'inbox115781412', 'title': 'Get Groceries', 'timeZone': '',
'reminders': [], 'priority': 0, 'status': 0, 'sortOrder': -3298534883328, 'items': []}
You can retrieve the full dictionary with every parameter by using the get_by_id
method.
full_task = client.get_by_id(groceries['id'])
print(full_task)
{'id': '60c6a40b8f083f896c9444a0', 'projectId': 'inbox115781412', 'sortOrder': -3298534883328,
'title': 'Get Groceries', 'timeZone': '', 'isFloating': False, 'reminder': '', 'reminders': [],
'priority': 0, 'status': 0, 'items': [], 'modifiedTime': '2021-06-14T00:34:19.907+0000', 'etag': 't8xnwewi',
'deleted': 0, 'createdTime': '2021-06-14T00:34:19.907+0000', 'creator': 113581412, 'tags': [], 'kind': 'TEXT'}
Created Task In TickTick
Most methods will return the object that was changed. Consult the usage documentation for more information on specific methods.
Installation
Note: ticktick-py
requires Python 3.6 or above.
pip install ticktick-py
Get Started
Register A New TickTick App
The library now uses TickTick's OpenAPI scheme when possible. This requires registering a new app through TickTick's developer documentation.
Click on Manage Apps
in the top right corner. You will be prompted to login with your
normal TickTick credentials if you are not already logged in.
Register a new app by clicking the +App Name
button.
Name
is the only required parameter here. Once created you should see the app and be able to edit it.
There should now be a generated Client ID
and Client Secret
parameters. It is recommended you save these to your
environment, and make sure you do not share your actual Client Secret
.
For OAuth Redirect URL
enter any URL you would like to be redirected to upon giving permissions to your account.
It does not have to be an actually live URL - this local host URL is fine for most purposes. It is also recommended you
save this URL to your environment.
Once you have registered the app, you can now proceed with the rest of the setup.
Required Imports
from ticktick.oauth2 import OAuth2 # OAuth2 Manager
from ticktick.api import TickTickClient # Main Interface
Setup
auth_client = OAuth2(client_id=client_id,
client_secret=client_secret,
redirect_uri=uri)
client = TickTickClient(username, password, auth_client)
The first time the OAuth2 object runs, you will need to manually accept permissions. A webbrowser will automatically open.
The default permissions are to Read and Write tasks (and are the only options right now). You can change the permissions
by specifying the scope
parameter when creating your OAuth2 instance. More information can be found in the
OAuth2 documention.
In the console you will be prompted to enter the URL that you were redirected to. It will be your specified OAuth URL with some added parameters.
Enter the URL you were redirected to:
>? http://127.0.0.1:8080/?code=RK3dSi&state=None
That is it! Your token information is cached in a file (default is .token-oauth
) so you will only have to manually
allow access the first time, and whenever the token expires. As of now it seems tokens expire after about 6 months.
Future Plans
- General
- Enhanced Team Support
- Tasks
- Get and Restore From Trash
- Projects
- Smart List Support
- Column Creation For Kanban View
- Pomo and Focus
- Getting the focus / pomo statistics for your profile
- Starting and stopping the focus / pomo timer
- Habits
- Get, create, archive, delete, and complete habits
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ticktick-py-2.0.0.tar.gz
.
File metadata
- Download URL: ticktick-py-2.0.0.tar.gz
- Upload date:
- Size: 45.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1af528b71eec30587129d8310c9013600977ec59c687e1d4d43d57cfbf0151bd |
|
MD5 | d6be895120999fce7d09d5af9c630618 |
|
BLAKE2b-256 | 8455a2e764fc6f2e26a6f39fd2d5173cd95aed0b947f9e874893d5bdc56d4567 |
File details
Details for the file ticktick_py-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: ticktick_py-2.0.0-py3-none-any.whl
- Upload date:
- Size: 45.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcc83e8b69dcd9c5c54a7d7f705928ffc8c1831e1c626037930fb85e1c48d67d |
|
MD5 | e4b0902cceb5de66fe8e645ff6bb2bd2 |
|
BLAKE2b-256 | 135eea07bd81be7fbc565fe6e3699dd4686aca81519dfe9ce5e080c81097b625 |