当前位置:
文章详情

我的稍后阅读工具:Notion

2024-02-24 11:08:29 87点赞 854收藏 96评论

背景

Notion:all in one

我习惯将资料统一归档到Notion,因此在手机微信公众号内容作为稍后阅读保存到Notion就比较麻烦,需要文章链接,再打开Notion,再打开到对应的Datebase,新建一条数据,编辑标题,并粘贴链接。

框架介绍

我的稍后阅读工具:Notion
  1. iOS/Android 复制网页链接,通过快捷指令/ Automate发送给Worker

  2. Worker收到链接后,获取链接地址的文章标题,将标题及URL通过Notion API保存到指定的Datebase

服务端搭建

Notion API

创建Notion Integration及获取Notion API key

  1. Integration 页面点击「Create new integration」可以创建Integration ;

  2. 填写workspaceName,点击「Submit」;

  3. 在Secrets页面,点击「Show」,即可复制获取Notion API key。

授权 Notion Integration

  1. 点击 Datebase 右上角的「…」;

  2. 再点击「Connect to」;

  3. 选择你的 Integration Name。

CF Worker

  1. 在左侧导航栏中选择「Workers 和 Pages」;

  2. 点击「创建应用程序」;

  3. 点击「创建Worker」;

  4. 填写名称「notion」,点击部署;

  5. 点击编辑代码;

  6. 删除所有代码,粘贴以下代码,并在sendToNotion函数中修改3个地方,

    1. database_id :网页端打开对应的Database,查看网页链接,在「?v=」后的32个字符就是database_id ;

    2. Authorization:之前Integration中获得的Notion API key,以secret_开头;

    3. properties:属性结构则需跟你的Database结构一致,通过postman发送get命令获取你的Database结构,修改相应内容。或者依据我的Datebase复制建立(链接),则不需要修改;

我的稍后阅读工具:Notion

addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { if (request.method !== 'GET') { return new Response('Only GET requests are allowed.', { status: 405 }) } // 从请求的 URL 中获取要获取标题的 URL const url = new URL(request.url) const targetUrl = url.searchParams.get('url') console.log(targetUrl) // 如果 URL 为空,则返回错误 if (!targetUrl) { return new Response('URL parameter is missing.', { status: 400 }) } try { // 发起对目标 URL 的 GET 请求 const response = await fetch(targetUrl) if (!response.ok) { throw new Error('Failed to fetch URL: ' + response.status) } // 从响应中提取 HTML 内容 const html = await response.text() // 从 HTML 中提取标题 const titleMatch = html.match(/(.*?)/i) let title = titleMatch ? titleMatch[1] : 'Title not found' //微信公众号获取标题 if (!title) { const ogTitleMatch = html.match(//i) title = ogTitleMatch ? ogTitleMatch[1] : null } console.log(title) // 将标题发送到 Notion API await sendToNotion(title, targetUrl) // 返回标题 return new Response(title, { status: 200 }) } catch (error) { // 处理异常情况 return new Response('Error fetching URL.', { status: 500 }) } } async function sendToNotion(title, url) { try { const newData = { parent: { // database_id: "YOUR_DATABASE_ID" "database_id": "XXXXXXXXX" }, "properties": { "order": { "checkbox": false }, "URL": { "url": url }, "Tags": { "multi_select": [] }, "Name": { "title": [ { "text": { "content": title } } ] } }, "children": [ { "object": "block", "bookmark": { "caption": [], "url": url } } ] } const notionApiUrl = 'https://api.notion.com/v1/pages' // 发送 POST 请求到 Notion API const response = await fetch(notionApiUrl, { method: 'POST', headers: { // 'Authorization': 'Bearer YOUR_NOTION_API_KEY', 'Authorization': 'Bearer secret_*******************', 'Content-Type': 'application/json', 'Notion-Version': '2022-06-28' }, body: JSON.stringify(newData) }) // 返回 Notion API 的响应 console.log(response) return response } catch (error) { // 处理错误情况 return new Response('Error occurred: ' + error.message, { status: 500 }) } } ```

7.点击「保存并部署」;

8.获取Worker的API地址(建议增加自己域名镜像绑定,自行搜索);

9.在浏览器中输入API地址加url参数即可实现在在Datebase中添加网页标题及URL,eg: https://notion.xxxxxx.workers.dev/?url=https://www.baidu.com

我的稍后阅读工具:Notion

Turning:使用postman进行调试

Notion | Postman API Network

客户端使用

iOS(快捷指令)

  1. 获取快捷指令,链接

  2. 修改Worker链接

  3. 在负一屏增加快捷指令

我的稍后阅读工具:Notion

Android(Automate)

  1. 获取指令,链接

  2. 修改Worker链接

  3. 在下拉通知栏添加快捷菜单

我的稍后阅读工具:Notion我的稍后阅读工具:Notion
展开 收起
96评论

  • 精彩
  • 最新
  • 抬头仰望大神

    校验提示文案

    提交
    真不算,瞎折腾

    校验提示文案

    提交
    收起所有回复
  • 大神带我飞

    校验提示文案

    提交
    感谢老板打赏

    校验提示文案

    提交
    收起所有回复
  • 没怎么看懂 [喜极而泣]

    校验提示文案

    提交
    可以看看背景及框架图

    校验提示文案

    提交
    可能是我最近才使用Notion吧,不过你讲的这功能挺实用的

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 节省时间 然后现在用memos,用插件导入到思源,也很不错

    校验提示文案

    提交
    用过 memos ,我说的背景下应该是实现不了的吧

    校验提示文案

    提交
    收起所有回复
  • 棒,晚点试试

    校验提示文案

    提交
    有问题可以随时找我 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 虽然我觉得印象笔记比较烂,但是也用不上这么麻烦。。。

    校验提示文案

    提交
    背景交代了 习惯 all in one 了

    校验提示文案

    提交
    收起所有回复
  • ai生成的头图

    校验提示文案

    提交
    哈哈 没错的

    校验提示文案

    提交
    啥时候能生成的更好就好了~

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 太麻烦了 我还是当场就读吧

    校验提示文案

    提交
    一次配置,方便后期了

    校验提示文案

    提交
    收起所有回复
  • 转发到文件传输助手随后再读是不是更简单一点

    校验提示文案

    提交
    背景交代了,习惯 all in one

    校验提示文案

    提交
    网页端等保存的都可以放 notion 里

    校验提示文案

    提交
    收起所有回复
  • 这个是收费的吗?有道云笔记免费版只能同步两个设备 ,想换一个了。谢谢

    校验提示文案

    提交
    免费版除了文件大小限制 5m 其他没有限制

    校验提示文案

    提交
    收起所有回复
  • 大神好,点赞,收藏了。 [龇牙]
    过几年再看。

    校验提示文案

    提交
    感谢,适用的时候再回来

    校验提示文案

    提交
    收起所有回复
  • notion一直没整明白,可能太复杂了

    校验提示文案

    提交
    有markdown 基础就还好,不然学习成本是有点高

    校验提示文案

    提交
    好久之前从iOS端,就折腾过一阵子,太费脑子,遂放弃了 [白菜君_吃瓜]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 现在有更好的了是β版大厂出的

    校验提示文案

    提交
    语雀?还是啥

    校验提示文案

    提交
    Readwisereader

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 稍后阅读于我等于不阅读 [皱眉]

    校验提示文案

    提交
    哈哈,我一般会集中一个时间段处理一下

    校验提示文案

    提交
    收起所有回复
  • 封面图是AI形成的吗?能否写一篇AI的文章,以头图为例。或简单介绍一下使用的软件,盼回复。

    校验提示文案

    提交
    目前来说 AI 跟墙有关。无非就是翻过去或者使用人家的套壳

    校验提示文案

    提交
    收起所有回复
  • 某宝买的订阅,ai玩了没几天就被cut了。

    校验提示文案

    提交
    一舟都被cut 了

    校验提示文案

    提交
    收起所有回复
  • 没看懂,不过很厉害的样子 [大囧]

    校验提示文案

    提交
    主要从自己需求出发

    校验提示文案

    提交
    收起所有回复
  • notion没有中文

    校验提示文案

    提交
    9年义务教育都还是学过英文的吧,日常使用问题不大

    校验提示文案

    提交
    那你为什么不用英文回复?***

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 虽然我用不上,但这文章对比站内一水的烂文真是非常不错了

    校验提示文案

    提交
    感谢认可呀,可以关注一波,以后多写一点

    校验提示文案

    提交
    收起所有回复
  • notion偶尔网络抽风

    校验提示文案

    提交
    毕竟在国外

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

最新文章 热门文章
854
扫一下,分享更方便,购买更轻松