要把说明书发到好友会话,有人把本地路径写进 contentpostText 投递的是字符串。对端看到的是路径,不是可下载文件。个人微信机器人会发字,不等于会发图。混在一个发送函数里,排障会同时改 appId 和文件名,两层故障缠在一起。

本机能 open() 的文件,对端下载不到。通道不读你的磁盘。

postText 只保证字

content 可以写「文件稍后发」。它不能把附件变成气泡。图片、文件要走文档里对应的发送接口,通常还要先有通道能引用的素材。素材没有就调发送,失败会被记成文字接口不稳定。文字接口可能一直是通的。

入队时就要定类型。不要到 HTTP 前把图片任务降级成文本路径。降级若未改文案,客户会以为图已到达。真要降级,只能换成已审短句,说明文件失败、坐席补发。把 /data/a.pdf 打进聊天,是泄露路径,不是降级。

文字探针用文档字段,证明号和会话还活着:

def enqueue(kind, app_id, to_wxid, payload):
    if kind == "text":
        return {
            "appId": app_id,
            "toWxid": to_wxid,
            "content": payload["text"],
        }
    if kind in ("image", "file"):
        raise NotImplementedError("附件走文档对应接口,禁止写入 content")
    raise ValueError(kind)

联调期让它抛出来。生产换成拒绝码:素材未就绪、类型不支持。拒绝进任务表,才能和掉线、超时切开。ats 是群提及用的,私聊附件不要带着它。

先通文字,再通一种附件

文字不过,不要测图片。第二期只加图片或只加文件。两种一起上,失败会说附件全挂,其实可能是 toWxid 把群写成了好友。群附件的对象仍应是 @chatroom 那一类 ID。

同一会话连续字、图、文件要过频率。附件失败禁止用 postText 重试原路径。验收:测试句原文可见;路径写入 content 后对端没有可打开文件;按文档走附件后气泡可打开且内容一致。个人微信自动化能力清单里,文字探针和附件是两行,不要勾成一行。

查看个人微信 API 文档:
https://doc.geweapi.com/

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐