当前位置:   article > 正文

微信公众号粉丝迁移_java 微信公众号迁移

java 微信公众号迁移

目录

[toc]

微信公众号迁移

正常的公众号迁移直接通过微信操作就可以,如下图。但是因为udb数据里面存的是迁移前公众号的openid以及unionid,需要自行获取新旧openid以及unionid。

旧的用户信息要在迁移之前获取,第三步点击同意之后就公众号的接口就调不通了

image.png

相应网址:客服文档

前期准备(APPID,APPSECRET,access_token)

名词解释

开发者ID(AppID):开发者ID是公众号开发识别码,配合开发者密码可调用公众号的接口能力。

AppID可以在 【微信公众平台-开发-基本配置】查看

开发者密码(AppSecret):开发者密码是校验公众号开发者身份的密码,具有极高的安全性。切记勿把密码直接交给第三方开发者或直接存储在代码中。如需第三方代开发公众号,请使用授权方式接入。

AppSecret现在不显示,需要把一开始申请的AppSecret保存下来,要不就只能重置

access_token:通过AppID以及AppSecret获取可以得到的调用接口的token,接口文档的接口基本都需要的一个参数,通过调接口获取

获取Access_token接口文档地址

PS: 有次数限制,一天2000次,一次获取的token两小时内有效

接口说明

https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?granttype=clientcredential&appid=APPID&secret=APPSECRET

参数
是否必须说明
grant_type
获取accesstoken填写clientcredential
appid

第三方用户唯一凭证
secret

第三方用户唯一凭证密钥,即appsecret

返回说明

{"access_token":"ACCESS_TOKEN","expires_in":7200}

    错误说明以及返回码看文档

    获取新旧openid以及unionid

    这里只说明公众号文档接口,文档地址如下: 微信公众号官方文档

    因为文档里面没有一次性获取所有信息的接口,因此需要单独获取各个信息,大概流程如下图:

    image.png

    1.获取用户openid

    对应微信接口地址如下: 获取用户列表

    公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成。一次拉取调用最多拉取10000个关注者的OpenID,可以通过多次拉取的方式来满足需求。

    PS:1.open_id列表并不是一直都添加在列表的最后面,如果是新关注的用户基本不会在列表最后,因此拉粉丝的时候建议一次性拉取完

    2.接口有调用次数限制,如下补充

    接口相关说明

    http请求方式: GET(请使用https协议)
    https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
    • 1

    参数
    是否必须说明
    access_token
    调用接口凭证
    next_openid

    第一个拉取的OPENID,不填默认从头开始拉取

    next_openid官方文档写着必须,但是不添加也可以调通接口,效果如下:

    image-20191217192433298

    2.获取用户详细信息(unionid)

    对应微信接口地址如下: 获取用户详细信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

    请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。

    PS: 1.有调用次数限制

    2.一次最多只能获取100个用户的详细信息

    3.这个接口返回有点慢,100个用户基本需要两秒

    接口相关说明

    http请求方式: GET
    https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
    • 1

    参数
    是否必须说明
    access_token
    调用接口凭证
    openid

    普通用户的标识,对当前公众号唯一
    lang

    返回国家地区语言版本,zhCN 简体,zhTW 繁体,en 英语

    返回说明

    正常情况下,微信会返回下述JSON数据包给公众号:

    {
        "subscribe": 1, 
        "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
        "nickname": "Band", 
        "sex": 1, 
        "language": "zh_CN", 
        "city": "广州", 
        "province": "广东", 
        "country": "中国", 
        "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
        "subscribe_time": 1382694957,
        "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
        "remark": "",
        "groupid": 0,
        "tagid_list":[128,2],
        "subscribe_scene": "ADD_SCENE_QR_CODE",
        "qr_scene": 98765,
        "qr_scene_str": ""
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    参数
    说明
    subscribe
    用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
    openid
    用户的标识,对当前公众号唯一
    nickname
    用户的昵称
    sex
    用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
    city
    用户所在城市
    country
    用户所在国家
    province
    用户所在省份
    language
    用户的语言,简体中文为zh_CN
    headimgurl
    用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
    subscribe_time
    用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
    unionid
    只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
    remark
    公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
    groupid
    用户所在的分组ID(兼容旧的用户分组接口)
    tagid_list
    用户被打上的标签ID列表
    subscribe_scene返回用户关注的渠道来源,ADDSCENESEARCH 公众号搜索,ADDSCENEACCOUNTMIGRATION 公众号迁移,ADDSCENEPROFILECARD 名片分享,ADDSCENEQRCODE 扫描二维码,ADDSCENEPROFILE LINK 图文页内名称点击,ADDSCENEPROFILEITEM 图文页右上角菜单,ADDSCENEPAID 支付后关注,ADDSCENE_OTHERS 其他
    qr_scene
    二维码扫码场景(开发者自定义)
    qrscenestr
    二维码扫码场景描述(开发者自定义)

    错误说明以及返回码看文档

    3. 通过旧openid获取新openid

    对应微信接口地址如下: 转换openid

    接口说明

    openid的API接口如下,可在 帐号迁移审核完成后 开始调用,并最多保留15天。若帐号迁移没完成,调用时无返回结果或报错。帐号迁移15天后,该转换接口将会失效、无法拉取到数据。

    http请求方式: POST
    URL:http://api.weixin.qq.com/cgi-bin/changeopenid?access_token=xxxxx
    请求数据:
    {
        "from_appid":"xxxxxxxx",//此处为原帐号的appid
        "openid_list":[
            "oEmYbwN-n24jxvk4Sox81qedINkQ",
            "oEmYbwH9uVd4RKJk7ZZg6SzL6tTo"
        ]
        //需要转换的openid,即第1步中拉取的原帐号用户列表,这些必须是旧账号目前关注的才行,否则会出错;一次最多100个,不能多。
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    这里的请求是 HTTP 坑!!

    返回数据:

    {
        "errcode": 0,
        "errmsg": "ok",
        "result_list": [
            {
                "ori_openid": "oEmYbwN-n24jxvk4Sox81qedINkQ",
                "new_openid": "o2FwqwI9xCsVadFah_HtpPfaR-X4",
                "err_msg": "ok"
            },
            {
                "ori_openid": "oEmYbwH9uVd4RKJk7ZZg6SzL6tTo",
                "err_msg": "ori_openid error"//这个openid目前没有关注旧公众号
            }
        ]
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4. 获取新的unionid

    同第二步,用新的openid去获取旧的openid

    补充

    公众号接口调用次数表

    百度来的图如下,具体请根据公众号后台-开发-接口权限查看。

    undefined

    本文由博客一文多发平台 OpenWrite 发布!

    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/788730
    推荐阅读
    相关标签
      

    闽ICP备14008679号