sodrooome / notion-sdk

Notion SDK written in python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python Notion

PyPI PyPI - Python Version Build Status

A simple wrapper for Notion SDK written in Python

Installation

This library only supported Python version 3.7 and above, earlier version might be work, but it still has backward compatibility for current APIs

pip install pynotion-wrapper

Usage

Before to do that, ensure you've setup Notion Integration and obtain the Integration Token. You can see about the Integration in here.

For quick example to get all users :

from notion.clients import NotionAPI

version = "2021-05-13" # notion version is required
secret = "YOUR_NOTION_TOKEN"
client = NotionAPI(secret, version)
print(client.get_all_users())

That following result something like :

{'object': 'list', 'results': [{'object': 'user', 'id': 'd4da784c-1c77-47e8-96bd-e917d96cd8b8', 'name': 'Ryan Febriansyah', 'avatar_url': 'https://lh4.googleusercontent.com/-O3Rzxu0oM9k/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDB5M-7zjHQcTqlJ0JBiAtlA5-RQ/photo.jpg', 'type': 'person', 'person': {'email': 'ryanfebriansyah72@gmail.com'}}, {'object': 'user', 'id': 'f4eb6dff-b0a9-431e-993f-970f049f1c76', 'name': 'python-sdk', 'avatar_url': None, 'type': 'bot', 'bot': {}}], 'next_cursor': None, 'has_more': False}

This wrapper also providing dict representation, so it will be separate with JSON type and returned as List for relevant object instances. For example, you can use this property method for retrieve all users information and db information :

from notion.clients import NotionAPI

version = "2021-05-13"
secret = "YOUR_NOTION_TOKEN"
client = NotionAPI(secret, version)
print(client.get_users_instances) # method for getting all user instances
print(client.get_db_instances) # method for getting all db instances

the returned value if using property method will be more simple rather than extensive output like in JSON based :

# encapsulated types
UserObjects(object='user', id='d4da784c-1c77-47e8-96bd-e917d96cd8b8', name='Ryan Febriansyah', type='person', email='ryanfebriansyah72@gmail.com')

Currently this wrapper only supported for retrieve Notion resources :

  • Database
  • Blocks
  • Pages
  • User

In the meantime, all APIs endpoint that provided by Notion will be adding into wrapper (for consideration itself, it might be delayed until Notion API already stable). All contributions are much welcomed!

About

Notion SDK written in python

License:MIT License


Languages

Language:Python 100.0%