问题描述
在事件格式 - 企业微信API中,有这么一句描述:当用户在客户端或管理端进行某种操作后,会回调相应的事件给开发者。通过API进行的操作不会产生回调。
高亮那句是我想要的效果——只有用户在微信原生页面上的变更操作才需要及时通知,自己应用上(不论前后端)的操作都是知道的,再回调的话会产生一堆麻烦。但测试下来非常困惑,api加了个标签,“编辑客户事件”仍然被回调了。
原因和解决办法
官方文档中其实隐晦提到了,只是那句话实在给人误导。
客户联系中的事件接收方式有如下两种:
第一个接收事件服务器可以理解为就是一个接口,无所谓在什么应用中实现它,只要能配置成功,客户变更事件就会回调这个接口;
第二个是可调用应用,是在“企业应用”添加过的某个应用。这里的配置包含了两层意思:授权应用使用客户联系相关的api,以及客户变更事件可以回调应用里的某个接口。注意这里只是“授权”了事件回调的可能,具体要回调哪个接口,还需在企业应用页面中去配置:
应用中配置的消息接收接口确实如文档所说,通过API进行的操作不会产生回调。但是接收事件服务器对所有操作都产生回调,像是一个监听角色,而事件格式中并没有区分操作的来源。所以设置哪种接口视情况而定。
需要提醒的是,接收事件服务器一旦设置无法取消,只能更改(微信团队一直没有优化这个功能,不晓得为什么)。最后的解决办法就是给它换一个url,只接收不处理,自己发消息玩去吧。