用 TTP Shortcuts 快速记录到 Memos

HTTP Shortcuts 的思路:把一次 HTTP 请求做成安卓桌面按钮或分享菜单入口。配置好以后,可以点一下弹窗输入,也可以复制文字后一键保存,还可以从浏览器、阅读器等 App 直接分享到 Memos。

接下来步骤可以实现 HTTP Shortcuts 做出“手动记到 Memos”“剪贴板到 Memos”“分享到 Memos”三个入口。

准备工作

第一步,在安卓手机安装 HTTP Shortcuts,应用是开源免费的。

官网:
https://http-shortcuts.rmy.ch/

GitHub:
https://github.com/Waboodoo/HTTP-Shortcuts

第二步,在 Memos 里创建访问令牌。打开 Memos,进入账号设置,找到 Access Tokens 或“访问令牌”,创建一个 Token。

三个快捷方式的区别

快捷方式适合场景使用方式
手动记到 Memos灵感、日记、临时想法、待办点桌面按钮,弹窗输入内容
剪贴板到 Memos复制网页文字、短句、普通文本先复制,再点按钮保存
分享到 Memos浏览器、阅读器、支持系统分享的 App选中文字,点分享,选择快捷方式

进入 TTP Shortcuts APP 配置

1、常量变量

右上角三点选变量新建常量

名称:request_body
值:test

2、选项变量

新建选项变量

名称:memo_visibility

添加三个选项:
1.标签:私密  值:PRIVATE
2.标签:公开  值:PUBLIC
3.标签:工作区  值:PROTECTED

3、剪贴板内容变量

新建剪贴板内容变量

名称:clip

一、手动记到 Memos

点一下按钮,弹出输入框,输入内容后选择私密、工作区或公开,再保存到 Memos。

设置方法

  1. 新建快捷方式(从头创建),名称写 手动记到 Memos
  2. 基本设置 - 方法 POST- URL 填https://你的Memos域名/api/v1/memos
  3. 请求头 两个

    Authorization: Bearer 你的MemosToken
    Content-Type: application/json
    
    `Bearer` 后面有一个空格,不要漏掉。
  4. 请求体/请求参数

    自定义类型
    类型:text/plain
    点正文的{}符号插入:{request_body}
  5. 脚本编写,在执行前运行里粘贴下面脚本。

    let text = prompt("输入要记录到 Memos 的内容", "", { multiline: true });
    
    if (text === null) {
      showToast("已取消");
      throw new Error("用户取消输入");
    }
    
    text = text.trim();
    
    if (!text) {
      showToast("内容为空,已取消");
      throw new Error("内容为空");
    }
    
    const visibility = getVariable("memo_visibility") || "PRIVATE";
    
    setVariable("request_body", JSON.stringify({
      state: "NORMAL",
      content: text,
      visibility: visibility
    }));

这里有一个细节:如果不小心点开弹窗,又点外面关闭,prompt() 会返回 null。脚本里用 throw new Error() 中止后续请求,就不会保存一条空 memo。

二、剪贴板到 Memos

这个版本适合保存普通复制文本。比如复制网页一段话、复制聊天里的一条消息,然后点按钮直接保存。

设置方法

长按复制一份现有快捷方式,改名为剪贴板到 Memos

脚本

改 在执行前运行

let text = getVariable("clip") || "";
text = text.trim();

if (!text) {
  showToast("剪贴板为空,已取消");
  throw new Error("剪贴板为空,取消发送");
}

const visibility = getVariable("memo_visibility") || "PRIVATE";

setVariable("request_body", JSON.stringify({
  state: "NORMAL",
  content: text,
  visibility: visibility
}));

三、分享到 Memos

分享版比剪贴板更适合浏览器、阅读器、网页摘录。用法是选中文字,点系统分享,然后选择 HTTP Shortcuts 的“分享记到 Memos”。

新建分享变量

新建常量变量

名称:share_text

往下找到高级选项,打开:

勾选 允许“共享” 选 仅文本

设置方法

长按复制一份现有快捷方式,改名为分享到 Memos

脚本

改 在执行前运行

let text = getVariable("share_text") || "";
text = text.trim();

if (!text) {
  showToast("没有接收到分享文本,已取消");
  throw new Error("分享文本为空,取消发送");
}

const visibility = getVariable("memo_visibility") || "PRIVATE";

setVariable("request_body", JSON.stringify({
  state: "NORMAL",
  content: text,
  visibility: visibility
}));

HTTP Shortcuts 支持把分享文本传给变量,也支持把快捷方式放进安卓分享菜单。官方说明可以看这里:

https://http-shortcuts.rmy.ch/advanced#share-text

常见问题

为什么复制长文章会报 400

如果直接把多行文字塞进 JSON,换行会破坏 JSON 格式。本文的做法是用 JSON.stringify() 生成完整请求体,可以自动处理换行、引号和特殊字符。

为什么点了取消还会保存空内容

如果脚本没有判断 null 或空字符串,弹窗关闭后仍然会继续发送请求。脚本里的 throw new Error() 就是用来中止发送的。

为什么微信多条聊天记录只保存第一条

微信复制多条消息时,系统剪贴板可能不是一整段纯文本,而是多段数据。HTTP Shortcuts 的剪贴板变量可能只读取第一段。解决方式是用手动输入版弹窗后粘贴,或者如果来源 App 支持系统分享,就用分享版。

🎈能不能直接上传图片和文档

可以研究,但我没研究明白,有没有大佬啊 ~

这套配置的核心不是复杂,而是把高频动作变短:想法出现时,不用找网页,不用等页面加载,不用担心换行报错,点一下就能记到自己的 Memos。

相关文档

Memos Create Memo API:
https://usememos.com/docs/api/latest/memoservice/CreateMemo

HTTP Shortcuts Variables:
https://http-shortcuts.rmy.ch/variables

HTTP Shortcuts Share Text:
https://http-shortcuts.rmy.ch/advanced#share-text
😊
提交
暂无评论数据