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

相关文章

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja