主流功能(收发消息、联系人、群管理)之外,接口文档里还有一批"小接口"——单独看不起眼,组合到业务里能解决具体问题。
一、消息已读状态查询
发送消息后可以查询消息的送达/已读状态。用途不是"监控客户看没看",而是优化发送策略:群发通知后统计已读率,已读率低的渠道换内容重试;重要消息确认客户已读后再推进下一步流程。
二、输入状态与操作反馈
部分接口支持向对话方展示"对方正在输入"等状态提示。这个功能在人工客服坐席场景有用:客服正在打字时给客户预期,减少客户等待焦虑、避免重复发问。自动化机器人场景不建议滥用——提示正在输入却迟迟不发消息体验更差。
三、聊天对象信息查询
除了好友详情,还有针对聊天上下文的信息查询:群里查某人的群昵称、查某人的群内头衔。处理群消息时用这些数据让回复更自然——@对方的群昵称而不是 wxid。
四、会话置顶与免打扰
会话管理接口可以设置会话置顶、消息免打扰。自动化运营时很实用:VIP客户会话自动置顶优先处理,高噪音群设免打扰只让程序处理不响铃。
小接口用途对照
小功能 | 解决的问题 | 适用场景 |
|---|---|---|
已读状态查询 | 不知道消息有没有被看到 | 通知触达率统计 |
输入状态提示 | 客户等待无反馈 | 人工客服坐席 |
群内身份查询 | wxid不友好无法称呼 | 群消息回复 |
会话置顶/免打扰 | 重要会话被淹没 | 客服优先级管理 |
小功能组合示例
@app.post("/webhook") def webhook(): d = request.json gid = d.get("groupId") wxid = d.get("fromUser") if gid: # 查群昵称,让回复有人情味 member = api("getGroupMember", {"wId": WID, "groupId": gid, "wxid": wxid}) display = member.get("data", {}).get("displayName") or "朋友" if d.get("messageType") == 1 and needs_human(d["content"]): # VIP客户:置顶会话+通知客服 contact = db.query("contacts", wxid=wxid) if contact and contact.get("level") == "vip": api("pinConversation", {"wId": WID, "conversation": gid}) notify_agent(display, gid, d["content"]) return {"code": "1000"} # 已读率统计:通知发送后24小时 def notification_report(send_batch_id): msgs = db.query("sent_messages", batch=send_batch_id) read = sum(1 for m in msgs if check_read(m["msgId"])) rate = read / len(msgs) if msgs else 0 return {"total": len(msgs), "read": read, "read_rate": f"{rate:.0%}"}落地建议
小接口的正确打开方式是"带着具体问题翻文档"——先遇到业务痛点(客户看没看通知?群里怎么称呼人?),再找对应接口。不要为了用而用,每个功能上线前问一句"它改善了什么具体体验"。接口清单和字段说明以 Eyun 开发文档 为准,小接口的开放范围可能随版本调整,用前确认。