微信公众号粉丝迁移

目录

[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

参数
是否必须说明
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

参数
是否必须说明
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": ""
}

参数
说明
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个,不能多。
}

这里的请求是 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目前没有关注旧公众号
        }
    ]
}

4. 获取新的unionid

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

补充

公众号接口调用次数表

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

undefined

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值