DingTalk 到 Notion:高效中转内容消息

2023-11-10 12:10

本文主要是介绍DingTalk 到 Notion:高效中转内容消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

最近写了一个简单的小工具。

由于每天需要记录的内容链接比较多,所以想通过 im 做中转。例如当天我发给机器人一些消息,最后会记录到 notion 一个文档中。

效果

目前只实现了 dingtalk to notion.

在这里插入图片描述
notion

说明

为什么使用 notion?

我对 notion 其实使用不多,notion 刚好是比较满足需求的,database 自带搜索功能,每一行都是一个 page,还有 notion api 可以调用,并且免费 plan 正常是够用的。

为什么暂时只实现了 dingtalk 的?

dingtalk 机器人功能支持了 stream 模式,stream 模式的好处主要有本地调试方便、部署简单等,详细可以参考 Stream模式优势

目标群体?

有类似需求的用户,目前配置比较繁琐,可能需要一点点开发小知识。

配置

前置依赖

1、notion 账号,创建集成(integrations)

如果你还没有 notion 账号,请自行进行相关账号注册。

为了调用 notion api,我们需要创建一个集成或者说叫 integration,成功注册账号之后,访问 my-integrations 进行创建

  • 点击 “New intergration”
  • 填写 Name,点击 “Submit”
  • 会跳转到 Secrets 页面,点击 “Show”,再点击 “Copy”,注意保存这个 secret,后续会用到

创建好 intergration 之后,需要回到 notion 主页,然后通过我创建的 notion 模版 复刻一个文档出来。

在这里插入图片描述

复刻完成之后,我们需要将此文档和上面创建好的 intergration 进行关联,或者说叫 add connections,通过 add connections 之后,后续这个 intergration 才有访问此文档以及此文档下所有子文档的权限。

在这里插入图片描述

最后,我们需要把此文档在浏览器上面的地址中的中间的一串有数字和字母组成的值给复制出来,我们称这个为文档的 ID

在这里插入图片描述

2、dingtalk 账号,需要创建属于自己的组织。

假定你已经创建好了属于自己的组织,接下来到"dingtalk 开放平台",在应用开发页面,点击"创建应用",填写应用名称和应用描述,其他不变。

应用创建好之后, 在"应用功能"-“机器人与消息"推送部分,打开"机器人配置”,填写必要的信息,消息接受模式选择 “Stream 模式”,点击调试,如果正常的话,会自动创建一个 dingtalk 群出来。

完成上一步之后,回到"基础信息"-“应用信息”,在应用凭证栏,可以看到 AgentId、AppKey、AppSecret 三个值,我们需要把 AppKey 和 AppSecret 保存下来。

3、保存好 notion 以及 dingtalk 相关凭证之后,接下来需要安装 docker 进行部署。

各种环境下的 docker 中文安装教程,官网教程

安装好 docker 之后,接下来只需要使用一行命令即可部署 im-to-notion 服务。

docker run -itd \-e LOG_LEVEL=info \-e LOG_OUTPUT=stdout \-e DINGTALK_APP_KEY=${DINGTALK_APP_KEY} \-e DINGTALK_APP_SECRET=${DINGTALK_APP_SECRET} \-e NOTION_SECRET=${NOTION_SECRET} \-e NOTION_DATABASE_ID=${NOTION_DATABASE_ID} \--name im-to-notion ghcr.io/ronething/im-to-notion:0.0.2

其中 ${} 花括号为需要设置环境变量的位置,如果你不知道什么是环境变量设置,也可以不用管。

将 ${DINGTALK_APP_KEY} 替换为之前保存的 dingtalk 应用 appKey,

将 ${DINGTALK_APP_SECRET} 替换为之前保存的 dingtalk 应用 appSecret,

将 ${NOTION_SECRET} 替换为之前保存的 notion 集成 secret,

将 ${NOTION_DATABASE_ID} 替换为之前保存的 notion 文档 id。

如果你已经正常部署,可以通过 docker logs 看到类似如下的日志消息:

$ docker logs -f im-to-notion 
2023-09-03T16:36:57Z	info	app/app.go:42	connect success, sessionId=[19049x85-xxxx-xxxx-af68-fe38832b071b]

接下来就可以发送对应消息给 dingtalk 进行测试。

  • 示例一:

只发送文本或者链接

  • 示例二:

发送文本和链接

  • 示例三:

发送文本、链接、以及多行备注

最后

此工具功能相当简单,目前已基本满足我个人的需求,理论上也可以接入其他 im 或者相关软件。

代码已经进行开源:ronething/im-to-notion,欢迎共同维护。

这篇关于DingTalk 到 Notion:高效中转内容消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382590

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、