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

相关文章

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

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

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

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

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