1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 不关注公众号可以获取openid吗_微信公众号粉丝迁移

不关注公众号可以获取openid吗_微信公众号粉丝迁移

时间:2021-06-22 09:29:56

相关推荐

不关注公众号可以获取openid吗_微信公众号粉丝迁移

目录

[toc]

微信公众号迁移

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

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

相应网址:客服文档

前期准备(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./cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

返回说明

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

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

获取新旧openid以及unionid

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

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

1.获取用户openid

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

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

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

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

接口相关说明

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

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

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

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

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

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

PS: 1.有调用次数限制

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

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

接口相关说明

http请求方式: GEThttps://api./cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

返回说明

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

{"subscribe": 1, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "广州", "province": "广东", "country": "中国", "headimgurl":"/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": ""}

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

3. 通过旧openid获取新openid

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

接口说明

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

http请求方式: POSTURL:http://api./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

补充

公众号接口调用次数表

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。