收藏
回答

请教公众号关注用户怎么同步到本地?

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

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

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

回答关注问题邀请回答
收藏

3 个回答

  • 陈宇明
    陈宇明
    2021-08-02

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

    2021-08-02
    有用
    回复 1
    • 2021-08-03
      谢谢
      2021-08-03
      回复
  • 青寒
    青寒
    2021-08-02

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

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

    2021-08-02
    有用
    回复 1
    • 2021-08-02
      谢谢,我再捋一捋
      2021-08-02
      回复
  • ㅤㅤㅤㅤ
    ㅤㅤㅤㅤ
    2021-08-02

    开启服务器推动功能。

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

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

    2021-08-02
    有用
    回复 1
    • 2021-08-02
      谢谢
      2021-08-02
      回复
登录 后发表内容