企业微信机器人:图片和文件为什么塞不进文本接口

客服要把报价单发进会话,第一反应往往是把文件路径写进 content。文本接口按字符串投递。对端收到的是路径或一串乱码,不是可点开的附件。机器人「会发字」和「会发文件」不是同一个 method。混在一个函数里,失败时两套参数一起改,归因漂掉。

本机磁盘路径能被 Python 打开,不代表对端能下载。通道传的不是你的文件系统。

文本投递只保证字符串可见

/msg/sendTextcontent 是会话里那句字。它可以提到「报价单见附件」,它不能把附件变成气泡。图片、文件要走文档里对应的发送方法,参数形态也不同,常见要先有可被通道使用的素材,再引用。素材没准备好就调发送,回执失败会被写成「文本接口不稳定」。文本接口那天可能一直是绿的。

所以发送层要按消息类型分支。类型在入队时就定,不要到 HTTP 前再猜。猜错的结果是:任务表写了图片,实际打出去的是文本,值班以为图片已达。

文本探针仍用文档字段,用来证明节点和会话是活的,不要用来夹带文件:

python 复制代码
def enqueue(kind, guid, to_id, payload):
    if kind == "text":
        return {
            "method": "/msg/sendText",
            "params": {"guid": guid, "toId": to_id, "content": payload["text"]},
        }
    if kind in ("image", "file"):
        # method、素材字段以文档为准,不要塞进 content
        raise NotImplementedError("附件走对应发送接口,先备素材再入队")
    raise ValueError(kind)

NotImplementedError 出现在联调期是好事。它逼你去对文档,而不是把 /tmp/a.pdf 写进客户群。生产里应换成明确的拒绝码:素材未就绪、类型不支持、对象非法。拒绝码进任务表,才能和通道超时切开。

先过文本,再过一种附件

第一期只验收文本。文本不过,不要测图片。第二期只加一种附件,图片或文件选一个。两种一起上,失败会说「附件都不行」,其实可能是素材过期、会话类型错、节点掉线里的某一个。

同一工单不要连发「字 + 图 + 文件」三次而不做间隔。员工号有频率约束。附件失败禁止用文本接口重试同一文件路径。那不是降级,那是把路径泄露到客户会话。真要降级,应换成人工已审的短句,例如「文件发送失败,坐席稍后补」。

验收:文本测试句在会话里原文可见;把文件路径写入 content,对端不应出现可打开附件;按文档走附件方法后,气泡可点开且与本地文件一致。三步都记下会话类型。内部群机器人能推文本,同样证明不了客户群附件已通。

查看企业微信 API 文档:

https://doc.qiweapi.com/

相关推荐
小鹿研究点东西16 小时前
采购SCRM系统需要考察哪些功能?一份可执行的选型清单
企业微信·scrm工具·企业选型
小鹿研究点东西3 天前
零售连锁企业做私域用什么工具?系统组合与上线顺序实操
企业微信·用户运营·零售·私域运营·scrm工具·私域运营工具
天空属于哈夫克33 天前
企业微信API鉴权:密钥隔离与通道管控
企业微信
天空属于哈夫克34 天前
企业微信自动运营怎么落地:标签、分层、触达节奏
架构·企业微信
天空属于哈夫克34 天前
企业微信API:回调接口避坑指南:验签+去重+异步处理
企业微信
星云API|微信接口开发4 天前
企业微信二次开发:外部群机器人如何实现消息自动收发与群聊识别
机器人·企业微信
星云API技术支持4 天前
企业微信二次开发:客户标签与联系人数据如何组合成业务模块
企业微信
今日热点4 天前
2026 企业微信主体变更公证书办理方法与私域资产保全指南:活码存档权限全规范
人工智能·企业微信
欢迎来到祖安!5 天前
企业微信 API 接口能力介绍:支持消息收发、图片发送、表情互动、联系人管理等多场景应用
java·前端·数据仓库·spring cloud·企业微信
星云API|微信接口开发5 天前
企业微信二次开发实战笔记:如何用在线调试快速验证接口功能
数据库·笔记·企业微信