请教公众号关注用户怎么同步到本地?
发布于 4 年前 作者 natan 3945 次浏览 来自 问答

公众号提供了通过accesstoken和nextOpenId去查询关注用户列表的接口。为了防止每次都从最开始拉取数据同步到数据库(因为用户很多,会消耗大量的时间),我们会通过数据库当前最后一条数据的openId作为nextOpenId去查询(此时微信会返回这个openId关注时间之后的所有openId),然后把新数据添加进数据库(这些新数据可以视为上一次同步过后的最新数据)。但是这样有一个bug:

因为公众号接口返回的openId是根据关注时间返回的,所以哪怕取消关注再重新关注,openId也是位于第一次关注时所在的位置。这样就导致了当同步时,这个时候用户是取消关注状态(已经关注过后再取消),实际上同步时是拉不到这个用户的。同步过后用户再次关注,但是数据库里面已经没有这个用户了(因为同步没有同步到)并且,通过数据库最后一条openid去查用户也是查不出来的(因为这个用户的openId在前面不在后面)。

请问这种情况该怎么处理呢?

3 回复

步骤一:通过接口统一拉取一回所有用户信息。

步骤二:以后利用关注或取消关注事件,更新你们本地的用户信息。

可以监听用户关注和取消的推送消息

开启服务器推动功能。

用户关注或取消关注时微信会给你推送一条消息的。

https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html

回到顶部