文件、图片发送功能正常,实际遇到的发送问题都是文件路径问题;
文件、图片接受功能,在位于群聊时正常,包含了sendWithResponse("get_group_file_url", { group_id: groupId, file_id: seg.data?.file_id, busid: seg.data?.busid });在私聊时不正常,此时只有文件名和文件id,没有文件url;
解决方案:
调sendWithResponse("get_file", { file_id: seg.data.file_id });将并设置seg.data.url;
主要缺陷:
napcat的文件下载会保存在.config/QQ/NapCat/temp,且/NapCat/temp不提供修改,在使用docker情况下必须将.config/QQ挂载,如果openclaw也使用docker部署则同样也需要挂载.config/QQ,此时很可能会遇到路径失效,发送文件时和图片失败也是相同原因。
难点:
发送文件时,可以搞共享目录让napcat挂载即可,但收文件的时候napcat会强制下载到/NapCat/temp;在不修改NapCat端的情况下最容易的解决方案反而是直接对齐到一个宿主机上的共享目录并直接使用原始路径:
napcat:shared-data:/root/.config/QQ/NapCat/temp;
openclaw:shared-data:/root/.config/QQ/NapCat/temp;