简要总结
iMessage
这页说明书是教你怎么让一个叫 OpenClaw 的机器人助手,通过苹果电脑上的“信息”(iMessage)应用来收发消息。它就像一个信使,可以帮你自动回复信息。不过,这页教的是个“旧方法”,现在有更好的新方法叫 BlueBubbles。如果你刚开始设置,最好去看新方法的说明书。
这页适合在你需要让机器人和苹果“信息”应用说话,并且想用这个旧方法的时候看。
五岁小孩版解释
这页讲的是一个旧方法,让 OpenClaw 机器人能用苹果电脑的“信息”应用。它需要一个叫 imsg 的小帮手程序来帮忙传话。重要提醒:现在有更好的新方法叫 BlueBubbles,如果你是第一次设置,建议你用新的。
第一步:快速设置(在你自己用的苹果电脑上)
- 安装和检查
imsg帮手。就像给你的电脑装一个新玩具。打开一个叫“终端”的窗口,输入两行命令。第一行是安装,第二行是检查它能不能工作。brew install steipete/tap/imsgimsg rpc --help
- 告诉 OpenClaw 怎么找到帮手。你需要修改一个叫“配置文件”的东西,在里面写上:启用 iMessage,帮手
imsg放在哪里,还有“信息”应用的聊天数据库在哪里。- 找到
cliPath,把它写成"/usr/local/bin/imsg"。 - 找到
dbPath,把它写成你电脑上chat.db文件的位置,比如/Users/你的名字/Library/Messages/chat.db。
- 找到
- 启动机器人网关。在终端里输入命令
openclaw gateway,让机器人开始运行。 - 批准第一个朋友。默认情况下,别人第一次用“信息”私聊机器人时,需要你批准成为朋友(这叫“配对”)。
- 用
openclaw pairing list imessage看看谁在申请。 - 用
openclaw pairing approve imessage <申请码>来批准他。要小心:这个申请码一小时后就会失效哦。
- 用
第二步:如果帮手在另一台苹果电脑上(通过 SSH)
有时候,imsg 帮手安装在另一台苹果电脑上。没关系,我们可以写一个小脚本,让 OpenClaw 通过“网络隧道”(SSH)去那台电脑上叫帮手干活。
- 写一个“呼叫脚本”。创建一个文件,里面写上
exec ssh -T 用户名@那台电脑的地址 imsg "$@"。这样,每次 OpenClaw 想找帮手,这个脚本就会通过网络去叫它。 - 在配置文件里告诉 OpenClaw。除了启用和脚本路径,还要多设置几项:
remoteHost:写上那台远程电脑的地址(如user@gateway-host),这样机器人才能去那里拿图片等“附件”。includeAttachments:设为true,如果你想让机器人也能接收图片。attachmentRoots和remoteAttachmentRoots:这里是告诉机器人可以去哪些文件夹找附件,通常是苹果电脑上放信息附件的地方。
需要提前准备好的事(只在苹果电脑上)
要让这个旧方法工作,你的苹果电脑需要满足几个条件:
- 电脑上的“信息”应用必须已经登录了你的苹果账号。
- 运行 OpenClaw 或
imsg的程序,必须有“完全磁盘访问”的权限,这样才能读到聊天记录。 - 还需要“自动化”权限,才能通过“信息”应用发送消息。
小窍门:如果权限弹窗没出现,你可以在终端里手动运行一次
imsg chats --limit 1或imsg send 联系人 “测试”这样的命令,就能触发系统问你要不要给权限了。
谁能和机器人聊天?—— 规则设置
你可以给机器人定规矩,决定谁可以和它聊天:
- 私聊规则 (
dmPolicy):默认是pairing(需要先批准成为朋友)。也可以改成allowlist(只允许名单上的人)、open(所有人都可以,但需要特别设置)或disabled(完全禁止私聊)。名单写在allowFrom里。 - 群聊规则 (
groupPolicy):默认是allowlist(只允许名单里的群)。名单写在groupAllowFrom里。在群里,通常需要有人在消息里“@”提到机器人,它才会回复。这个“@”的规则需要另外设置。
发送图片和长消息
- 图片和附件:通过设置
includeAttachments为true来接收。如果帮手在远程电脑,需要设置remoteHost才能拿到。附件存放的路径必须符合attachmentRoots或remoteAttachmentRoots的规定,通常是苹果电脑上特定的文件夹。 - 长消息分段:如果机器人要回复的文字太长,它会自动切成小段发送。你可以通过
textChunkLimit设置每段多长(默认4000字),通过chunkMode设置按什么方式切分。
如果遇到问题
- 帮手找不到:在终端运行
imsg rpc --help和openclaw channels status --probe检查一下。 - 私聊没反应:检查
dmPolicy和allowFrom设置,再看看有没有需要批准的配对请求 (openclaw pairing list imessage)。 - 群聊没反应:检查
groupPolicy、groupAllowFrom和群里“@”规则的设置。 - 远程图片拿不到:检查
remoteHost和remoteAttachmentRoots设置,确认网络连接和权限没问题。 - 电脑没问权限:在运行机器人的同一个用户环境下,手动运行一次
imsg chats --limit 1这样的命令,触发权限弹窗。