01
复制旧指令保留原件,所有修改都在副本里完成。
iPhone Shortcut Migration Guide
适用于你已经有一个旧版 MonoSpend 快捷指令,但里面把 Authorization token 写死了的情况。目标是保留原来的语音记账动作,把凭证改成「首次运行输入配对码,本机保存 device token」。
01
复制旧指令保留原件,所有修改都在副本里完成。
02
删除旧 token清掉写死的 Authorization header。
03
新增配对分支没有本机 token 时,询问网页配对码。
04
保存 device token把 pair 返回的 token 存在本机文件。
05
一句话 capture日常记账只调用 /api/capture。
Before Editing
这一步能避免把旧 token 继续传播出去。这里的 token 指生产凭证或个人 device token,不要写进要分享的 iCloud 快捷指令安装包。
Account
能登录 MonoSpend 工作台打开 https://monospend.app/app,登录后才能生成 10 分钟有效的一次性配对码。
Shortcut
先复制,不直接改原件在 iPhone「快捷指令」里长按旧指令,选择复制。把副本命名为 MonoSpend Capture Pairing。
Storage
约定本机 token 文件后续动作统一读写 Shortcuts/monospend-token.txt。这个文件只在本机,不放进公开安装包。
Find Your Starting Point
不要一上来就改。先打开旧指令,找到最核心的「获取 URL 内容」动作,看它有没有写死 Authorization,有没有已有的配对逻辑。
Most likely
只有/api/capture + 固定 token
这是最常见的老版本。按下面完整迁移步骤做:复制旧指令、删除固定 token、新增配对分支、保存 device token。
Half migrated
已经有/api/pair,但 token 仍写死
保留配对请求,重点检查 capture 请求里的 Authorization,必须改成读取本机保存的 Device Token 变量。
Clean start
旧指令太乱或找不到请求动作不要硬修。打开 /shortcut,按安全安装页重新建一份,再把旧指令里的听写文案或菜单动作搬过去。
Action Map
你可以把这节当成核对表。迁移的关键不是重写所有动作,而是把“凭证来源”从固定文本改成本机设备 token。
继续保留。它的结果最终进入 JSON 的 transcript 字段。
POST https://monospend.app/api/capture
继续保留这个日常记账请求,只改 Authorization 的来源。
Bearer xxx
必须删除。任何真实 token 都不能留在要分享的 iCloud 快捷指令里。
/api/pair 分支
没有本机 token 时,询问配对码,换取 device token,并保存到本机文件。
改成 Bearer [Device Token]。这里的 Device Token 必须是变量,不是手写文本。
继续读取 confirmation。需要改错时再打开 correctionUrl。
Action By Action
下面用 iOS 快捷指令里的常见动作名称描述。不同 iOS 版本中文翻译会略有差异,核心是同一件事:先拿 device token,再用它写 capture。
旧版通常已经有一个请求指向 https://monospend.app/api/capture,Method 是 POST,Body 是 JSON。
/api/capture。要保留:URL、POST、JSON body、听写文本变量。
要删除:写死的 Authorization token。
进入 Headers,找到 Authorization。如果值是 Bearer sk...、Bearer msp... 或任何固定字符串,把它删掉。
Authorization 的字段。不要把旧指令继续分享出去。只要里面有真实 token,这个 iCloud 链接就不适合作为公开安装包。
新增文件读取动作,读取 Shortcuts/monospend-token.txt。搜索「获取文件」时,要选「获取文件夹中的文件」,不要选「获取文件的详细信息」。这一行动作的字段顺序容易看错:路径填文件名,文件夹填 Shortcuts。
monospend-token.txt。monospend-token.txt 获取 iCloud Drive / Shortcuts 中的文件。Device Token。如果弹窗里出现「名称」「文件大小」「文件路径」这些选项,说明你正在选文件详情。这里不要选「名称」,否则 Authorization 会变成 Bearer monospend-token.txt。
如果没有「获取文件夹中的文件」,用「获取文件夹内容」加「筛选文件」按名称找到 monospend-token.txt。
在没有 token 时,先用「询问输入」让用户输入网页上的配对码,再请求 POST /api/pair。这个 If 要放在设定 Device Token 之后、/api/capture 请求之前。
/api/capture 请求前面。Device Token。如果看不到,就点「选择变量」,再点上面那一步的 Device Token 魔法变量。Device Token 没有任何值。https://monospend.app/api/pair,方法改 POST,请求体改 JSON。这个 pair 请求不能只是普通 URL。JSON 请求体里要有 pairingCode,值选择「请输入 MonoSpend 配对码」的输入结果;再加 deviceName,值可填 iPhone Shortcut。
请求成功后,用「获取词典值」读取 token。先把这个 token 重新设为 Device Token,再用「存储文件」保存为 monospend-token.txt,允许覆盖。
token。Device Token 设为刚取出的 token 值。否则首次运行会保存成功,但本次 capture 仍然没有 token。token 值,位置选 Shortcuts,子路径填 monospend-token.txt。推荐顺序:获取 token 的值 -> 设定变量 Device Token -> 存储 token 到 monospend-token.txt -> 结束如果 -> 继续 capture。
回到 /api/capture 的请求,把 Header 改为:Authorization: Bearer Device Token。这里的 Device Token 是变量,不是固定文本。
Bearer ,后面插入 Device Token 变量。Authorization value。建议用一个 Text 动作拼出:Bearer [Device Token]
再把这个文本填到 Authorization。
旧快捷指令里如果已经有「听写文本」或「询问输入」,可以继续使用。只要把结果写到 JSON 的 transcript 字段;不要把 Shortcuts 文件夹、token 文件或 Device Token 放到这里。
source 填 shortcut。transcript 选择听写或输入结果变量。你的 capture 请求里,transcript 那一格应该选最上面的「听写文本」结果。测试句:
午饭 58,咖啡 22,打车 31
请求返回后,用「获取词典值」取 confirmation 并显示。需要改错账时,可以取 correctionUrl 并打开。
confirmation。correctionUrl,需要纠错时打开 URL。成功后网页账本应出现多条 item。旧链接仍会跳到 /app?line=... 做纠错。
Exact Requests
如果你只想核对字段,这一节最关键。配对请求只在首次运行时发生;日常记账请求每次运行都会发生。
First Run Only
这个请求没有 Authorization。它只需要网页生成的一次性配对码。
{
"pairingCode": "网页显示的配对码",
"deviceName": "iPhone Shortcut"
}
Every Capture
这里必须使用本机保存的 device token。不要填共享生产 token。
{
"source": "shortcut",
"transcript": "听写或输入结果",
"clientRequestId": "shortcut-当前日期",
"syncTargets": ["feishu", "notion", "google_sheets"]
}
Debug Notes
先用网页控制台确认配对码和设备列表,再回到 iPhone 调整快捷指令。多数问题都发生在 token 文件、Authorization 拼接或请求体 JSON。
通常是 Authorization 没有拼成 Bearer DEVICE_TOKEN,或者设备在网页端已经被撤销。重新生成配对码并删除本机 token 文件再试。
检查 monospend-token.txt 是否已经存在但内容为空或旧。删除文件后重新运行,应该询问配对码。
确认 transcript 是完整句子,例如「午饭 58,咖啡 22,打车 31」,不要只传了第一段文本。
在快捷指令里搜索 Bearer、token、Authorization。公开安装包里不应该出现真实 token 值。
Reset And Re-pair
如果你改到一半搞乱了,或者设备 token 已撤销,不需要重建整个快捷指令。清理本机 token 后重新跑首次配对即可。
On iPhone
打开「文件」App,进入 iCloud Drive 的 Shortcuts 文件夹,删除 monospend-token.txt。下一次运行快捷指令时,它应该重新询问配对码。
monospend-token.txt。On Web
打开 MonoSpend 工作台,撤销旧 iPhone 设备,再生成新的 iPhone 配对码。新配对码只有 10 分钟有效,并且只能用一次。
https://monospend.app/app 并登录。Acceptance
验收通过后,这个快捷指令才适合继续复制成公开安装包或发给早期用户。
iCloud 分享链接里没有生产 token,也没有你的个人 device token。
首次运行输入配对码后,网页端能看到这台 iPhone Shortcut。
测试句能拆成 3 条账本 item,并显示 confirmation。
网页撤销设备后,这台手机旧 token 再请求 capture 应该失败。