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

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

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

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

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

所以发送层要按消息类型分支。类型在入队时就定,不要到 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/

相关推荐
极客互动API14 小时前
【极客互动】企业微信外部群聊机器人开发实战与效果验证
微信·机器人·企业微信·企微scrm·企业微信api·企微外部联系人
金融Tech趋势派3 天前
企业微信SCRM多少钱一年?2026收费标准拆解与预算自算表
大数据·企业微信
weixin_493503674 天前
商协会系统对接企业微信:通讯录同步实战
企业微信
天空属于哈夫克34 天前
企业微信 API 二次开发与 AI 结合:如何设计智能消息处理流程
人工智能·企业微信
随性而行3604 天前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信
ManageEngineITSM5 天前
ITSM系统如何与企业微信、钉钉、飞书集成?提升工单处理效率的方法
java·大数据·开发语言·钉钉·企业微信·变更管理
天空属于哈夫克35 天前
企业微信API二次开发 赋能私域运营自动化
运维·自动化·企业微信
天空属于哈夫克36 天前
企业微信 RPA 自动化开发实践:打通客户管理与业务任务处理流程
机器人·自动化·企业微信·rpa
杨婷1236 天前
2026 企微会话存档服务商怎么挑,合规稳定优先看什么
企业微信
金融Tech趋势派7 天前
企业微信SCRM多少钱一年?2026收费模式、报价构成与免费版说明
大数据·企业微信