每日任务自动仪(+带Python的intion api) - 教程
#教程 #python #notion #notionapi

在本教程中,我将向您展示如何使用Intion和Python设置自己的任务自动化系统。

简单的介绍:

我们必须遵循这两个主要步骤:

  1. 概念集成设置
  2. Python代码设置

这两个步骤之间的链接,位于概念api的魔法。

如果您是概念API和概念集成本身的新手,我将解释您如何在本教程中开始使用。

想要概念模板吗?在这里得到它!

如果您还没有访问概念模板,请获取👉🏻 hereð»

现在,您已经获得了此模板并重复进入工作空间,让我们开始:

概念集成设置

此步骤确保Python脚本对正确的概念数据库进行更新。

为了确保这一点,Python代码需要首先“识别”概念数据库,以便它可以与之“交谈”。

每个概念数据库都有一个唯一的ID,该ID是URL链接的一部分。

为了使此过程更容易,我们可以创建一个可用于连接到您的概念数据库的“秘密令牌”。

让我们这样做,

1.创建概念集成秘密令牌

如果您还没有,请创建一个免费的Notion帐户

  1. 转到https://notion.so/my-integrations/

  2. 单击+ New Integration按钮

Daily Task Automator (+ Notion API with Python) - Tutorial

  1. 给名称My Notion Task Automator并提交

Daily Task Automator (+ Notion API with Python) - Tutorial

  1. 显示并复制秘密令牌(安全地将其保留)

Daily Task Automator (+ Notion API with Python) - Tutorial

  1. 单击Save Changes

Daily Task Automator (+ Notion API with Python) - Tutorial

复制并保留概念集成的秘密令牌,以便您以后可以将其共享到Python脚本。

2.将其连接到概念页面

  1. 单击右上角的...

Daily Task Automator (+ Notion API with Python) - Tutorial

  1. 单击Add Connections并搜索并选择新创建的概念集成

Daily Task Automator (+ Notion API with Python) - Tutorial

3.创建任务每天自动填充

让我们从一个简单的习惯开始,

dªª在每周10:30俯卧撑10俯卧撑

任务定义概念数据库中,单击+ new,然后创建一个新任务:

  1. 任务名称Perform 10 Pushups
  2. date 10:30 AM(任何日期,但时间应为10:30 am)
  3. 一周的日子(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)

这是样子,

Daily Task Automator (+ Notion API with Python) - Tutorial任务定义数据库中的任务](/2.png)

Daily Task Automator (+ Notion API with Python) - Tutorial

哇!看你!

现在让我们专注于运行Python脚本。直接跳入:

Python代码设置

为此,您不必在PC或笔记本电脑上运行Python。

您可以:

1.在Replit上创建一个免费帐户,并登录,

Daily Task Automator (+ Notion API with Python) - Tutorial

Daily Task Automator (+ Notion API with Python) - Tutorial

Daily Task Automator (+ Notion API with Python) - Tutorial

2.复制并粘贴Python代码

复制以下Python代码:

import requests
import json
from datetime import date
import calendar
import os
import dateutil.parser
import datetime


class MyNotionIntegration:

    def __init__(self):
      self.headers = {
        'Content-Type': 'application/json',
        'Notion-Version': '2021-05-13',
        'Authorization': f'Bearer {os.getenv("NOTION_DAILY_TASK_SCHEDULER_INTEGRATION_SECRET")}'
      }
      self.read_db = self.write_db = self.list_of_tasks = None

    @staticmethod
    def getSameTimeButToday(date_string):
      if not date_string:
        return
      iso_parser = dateutil.parser.isoparse(date_string)
      today_date_obj = iso_parser.replace(
        day=datetime.datetime.now().day,
        month=datetime.datetime.now().month,
        year=datetime.datetime.now().year,
      )
      return today_date_obj.isoformat('T')

    def getReadAndWriteDBs(self, name=None):
      if not name:
        name = "TASKS TEMPLATE"
      url = "https://api.notion.com/v1/search/"
      payload = json.dumps({
        "filter": {
          "property": "object",
          "value": "database"
        }
      })
      response = requests.request("POST", url, headers=self.headers, data=payload)
      databases = response.json().get('results')
      for database in databases:
        if database.get('title')[0].get('text').get('content').upper() == name:
          self.read_db = database
        else:
          self.write_db = database

    def getTodaysTasks(self):
      url = f"https://api.notion.com/v1/databases/{self.read_db.get('id')}/query"
      payload = json.dumps({
        "filter": {
          "property": "Day of the Week",
          "multi_select": {
             "contains": calendar.day_name[date.today().weekday()]
          }
        }
      })
      response = requests.request("POST", url, headers=self.headers, data=payload)
      self.list_of_tasks = response.json().get('results')

    def createTasks(self):
      url = "https://api.notion.com/v1/pages/"
      for task in self.list_of_tasks:
        print(task.get('properties').get('Date').get('date').get('start'))
        payload = json.dumps({
          "parent": {
            "type": "database_id",
            "database_id": self.write_db.get('id'),
          },
          "icon": task.get('icon'),
          "properties": {
            "Due For": {
              "type": "date",
              "date": {
                "start": self.getSameTimeButToday(
                  task.get('properties').get('Date').get('date').get('start')
                ),
                "end": self.getSameTimeButToday(
                  task.get('properties').get('Date').get('date').get('end')
                ),
              }
            },
            "Task": {
              "type": "title",
              "title": [
                {
                  "type": "text",
                  "text": {
                    "content": task.get('properties').get('Name').get('title')[0].get('plain_text'),
                  },
                  "plain_text": task.get('properties').get('Name').get('title')[0].get('plain_text'),
                }
              ]
            }
          }
        })
        response = requests.request("POST", url, headers=self.headers, data=payload)
        print(f"HTTP Status {response.status_code}", response.text)

    def RunWorkflow(self):
      self.getReadAndWriteDBs()
      self.getTodaysTasks()
      self.createTasks()

if __name__ == "__main__":
  MyNotionIntegration().RunWorkflow()

Daily Task Automator (+ Notion API with Python) - TutorialReplit setup

3.与Python脚本分享概念集成密钥

Daily Task Automator (+ Notion API with Python) - Tutorial

Daily Task Automator (+ Notion API with Python) - Tutorial

4.从浏览器中运行脚本!

Daily Task Automator (+ Notion API with Python) - Tutorial

Daily Task Automator (+ Notion API with Python) - Tutorial

在Replit上运行Python脚本后,您可以看到今天的任务已在任务Automator数据库中自动填充。

Daily Task Automator (+ Notion API with Python) - Tutorial

ð¥³很好!您现在有一个自动待办事项!

将所有习惯添加到Task Definition数据库中,并每天运行python脚本(自动化)以自动生成Task Automator数据库中的todo-list。

ð谢谢

...成为该实验的一部分,希望您使用它来提高生产力ð

如果您还没有访问概念模板,请获取👉🏻 hereð»

如果您喜欢此产品,您可能会喜欢我的其他产品,可以找到🔗 👉🏻 hereð–»

让我们在Twitter @TnvMadhav上连接,如果您不想错过新的项目!