Ваш компас для знакомства с API Notion с cURL и Python.

Notion - это платформа, предназначенная для объединения вашего рабочего процесса в единое рабочее пространство. Он имеет множество опций и функций, адаптированных для всех видов использования.

Я начал использовать Notion недавно и решил, что буду использовать режим базы данных, который предлагает Notion. Я хотел отслеживать участников, подписанных на информационный бюллетень blef.fr, загружая каждого участника в базу данных Notion.

Мы рассмотрим процесс создания базы данных в Notion и загрузки в нее данных.

Сначала создайте базу данных в своем рабочем пространстве. Зайдите в рабочую область и добавьте страницу. Введите / table и выберите таблицу на всю страницу. Затем вам нужно будет создать интеграцию и поделиться своей базой данных с помощью этой интеграции, учебник здесь.

Теперь, когда у вас есть идентификатор базы данных и ключ Notion, вы можете приступить к выполнению запросов API.

Мы рассмотрим запросы Notion с использованием cURL и Python.

Запрос API Notion с помощью cURL

Вот как выглядит HTTP-запрос Notion:

curl -X POST https://api.notion.com/v1/pages -H "Authorization: Bearer $NOTION_KEY" -H "Content-Type: application/json" -H "Notion-Version: 2021-08-16" --data @your_json_file.json

Допустим, в вашей базе данных четыре столбца: имя, страна, адрес электронной почты и подписка.

Имя - это свойство Заголовка, Страна - это текстовое поле, Электронная почта - это формат электронной почты, а Подписка - это вариант выбора.

Чтобы вставить данные в эту базу данных, вы должны создать файл JSON в следующем формате:

Вы можете найти этот JSON-файл здесь.

Подробнее об объектах свойств Notion: документация.

Дополнительные примеры использования API Notion: почтальон.

Запрос API Notion с помощью Python

Начните с импорта модулей json и requests. Сохраните заголовки API и конечную точку API в переменных:

API_ENDPOINT = "https://api.notion.com/v1/pages"
HEADERS =  {"Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" ,"Notion-Version": "2021-08-16"}

Затем откройте файл JSON, содержащий то, что вы хотите добавить в базу данных.

with open ('PATH_TO_YOUR_JSON', 'r') as f:
    DATA = json.load(f)

Сделайте POST-запрос с заголовками и данными.

r = requests.post(API_ENDPOINT, data=json.dumps(DATA), headers=HEADERS)

Распечатайте содержание запроса, чтобы увидеть возвращенное сообщение.

print(r.content)

Используйте созданный мной NotionHook

Я нашел неофициальный Python API для понятия (ссылка здесь), но я не нашел ничего, связанного с Airflow, поэтому решил, что сделаю свой собственный Notion Hook (ссылка здесь). У него есть три метода: создание базы данных, получение базы данных и загрузка данных в базу данных.

Вы также можете найти мой запрос на вытяжку воздушного потока здесь, оставьте большой палец вверх, если зайдете!

Спасибо за чтение!

Первоначально опубликовано saja на blef.fr.

Больше контента на plainenglish.io