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

目录

[toc]

微信公众号迁移

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

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

f0e895c7d89b8ada3720f1351d8415e7.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?grant_type=client_credential&appid=APPID&secret=APPSECRET

返回说明

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

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

获取新旧openid以及unionid

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

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

40b4f64a30bf09cdd76d0239589a8f9c.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

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

5516683fd33ca32693df8d3f4ad96bd6.png

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

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

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

请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(http://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

返回说明

正常情况下,微信会返回下述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": ""
}

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

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

补充

公众号接口调用次数表

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

49f0850c5bf75bcedfee5fd9fc9eb6cc.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建筑专业规范大全 2020版_房屋建筑工程现行规范标准目录汇编(2020版)—建筑电气...

房屋建筑工程现行规范标准目录汇编(2020版)建筑电气规范编号规范名称GB 50034-2013建筑照明设计标准GB 50052-2009供配电系统设计规范GB 50053-201320kV及以下变电所设计规范GB 50057-2010建筑物防雷设计规范GB 50147-2010电气装置安装工程 高压电器施工及验收规范GB 50148-201…

基于Microsoft Visual Studio2019环境编写ffmpeg视频解码代码

旧代码 旧代码使用了很多过时的API,这些API使用后,vs会报编译器警告 (级别 3) C4996的错误即 函数被声明为已否决 报 C4996的错误 // test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #define SDL_MAIN_HANDLED …

16进制转double dotnet_终于把计算机进制弄明白了!

And theres one thing that I need from you我只需要你为我做一-件事Can you come through, through待在我的身边就好Through, yeah你可以抚慰一切不满And theres one thing that I need from you你可以过来Can you come through?待在我的身边吗-comethruJeremy Zucker进制进制…

FFmpeg源代码简单分析-架构图-解码

参考链接 FFmpeg源代码结构图 - 解码_雷霄骅的博客-CSDN博客_ffmpeg雷霄骅函数背景色 函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用: 粉红色背景函数:FFmpeg的API函数。白色背景的函数:FFmpeg的内部函数。黄色背景…

JUnit单元测试笔记

#01 JUnit简介 1.在项目工程中的Library,add 一个JUnit的Jar包,按需要添加JUnit 3 或 JUnit 4(分为被测试类与测试类较佳)。 2.单元测试是由程序员完成的。 3.Java 5 之前的版本只能 用JUnit 4前的版本(因为JUnit 4用到Java 5的…

jqery获取每个月天数_三年级《年、月、日》单元重要知识点整理汇总,以及难点题型解析...

昨天给大家分享了《计算经过的时间》问题,今天给大家分享的是《年、月、日》单元中重要的几个知识点,以及难点题型解析。知识点1 感知年、月、日一、结合生活实际,看看下面事情需要经过多少时间。跑完100米大约需要经过十几(秒)。2.打一场篮球…

FFmpeg源代码简单分析-架构图-编码

参考链接 FFmpeg源代码结构图 - 编码_雷霄骅的博客-CSDN博客_ffmpeg 源码函数背景色 函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用: 粉红色背景函数:FFmpeg的API函数。白色背景的函数:FFmpeg的内部函数。黄色背景的…

为革命,保护视力——为Eclipse更换暗黑皮肤及编辑页面的字体颜色主题

1.在Eclipse中的菜单栏的Help -> Eclipse Market 的 Search栏中输入 Eclipse Moonrise UI Theme ,之后自己执生啦(确保上网配置正确)。 2.与上面操作类似,输入 Eclipse Color Theme,选择安装。 3.选择菜单栏的Win…

python函数可以作为容器对象吗_正确理解Python函数是第一类对象

正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器、匿名函数(lambda)、函数式编程等高阶技术。函数(Function)作为程序语言中不可或缺的一部分,太稀松平常了。但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性。那到底什么…

FFmpeg源代码简单分析-通用- av_register_all()

参考链接 ffmpeg 源代码简单分析 : av_register_all()_雷霄骅的博客-CSDN博客_av_register_all()从学龄前开始解读FFMPEG代码 之 avcodec_register_all函数_zzyincsdn的博客-CSDN博客

@suppressWarnings(unchecked)及其相关属性在Java中意思

首先suppressWarnings("unchecked")是JDK1.5中新加入的Annotation语法,用来压制警告信息的。 编写代码时,有时会提示一些警告(例如:使用已经废弃的类,没有加入泛型等),如果不想让程序…

FFmpeg源代码简单分析-通用-avcodec_register_all()

参考链接 ffmpeg 源代码简单分析 : avcodec_register_all()_雷霄骅的博客-CSDN博客

pythonsklearn乳腺癌数据集_Python的Sklearn库中的数据集

一、Sklearn介绍scikit-learn是Python语言开发的机器学习库,一般简称为sklearn,目前算是通用机器学习算法库中实现得比较完善的库了。其完善之处不仅在于实现的算法多,还包括大量详尽的文档和示例。其文档写得通俗易懂,完全可以当…

FFmpeg源代码简单分析-通用- 内存的分配和释放(av_malloc()、av_free()等)

参考链接 FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)_雷霄骅的博客-CSDN博客_av_malloc 内容介绍 内存操作的常见函数位于libavutil\mem.c中本文记录最常使用的几个函数: av_malloc()av_realloc()av_mal…

面试题——死锁的实现

public class DeadLock {public static Object Chopstick_1 new Object();public static Object Chopstick_2 new Object();public static void main(String[] args) {final DeadLock deadLock new DeadLock();// 第一个线程 new Thread(new Runnable() {public void run()…

python回归分析实验_python线性回归实验

实验算法python线性回归实验【实验名称】Python线性回归实验【实验要求】掌握Python线性回归模型应用过程,根据模型要求进行数据预处理,建模,评价与应用;【背景描述】线性回归是利用数理统计中回归分析,来确定两种或两…

FFmpeg源代码简单分析-通用-结构体分析-AVFormatContext

参考链接 FFMPEG结构体分析:AVFormatContext_雷霄骅的博客-CSDN博客_avformatcontext AVFormatContext AVFormatContext是包含码流参数较多的结构体结构体的定义位于libavformat/avformat.h/*** Format I/O context.//格式化 I/O 上下文* New fields can be added…

log4j详解与实战

log4j详解与实战 http://www.iteye.com/topic/378077

plsql如何显示表结构图_【论文攻略】排版技巧——如何用 Word 编辑参考文献

每个需要写毕业论文的朋友都会发现,修改文献是一件非常痛苦的事情,虽然现在也有很多软件可以编排参考文献,其实 word 本身就可以。采用合适的编辑方法会方便地做到整齐,规范, 自动排序和交叉引用。 1. 以尾注的方式插入第一个参考文献将光标定…

FFmpeg源代码简单分析-通用-结构体分析-AVCodecContext

参考链接 FFMPEG结构体分析:AVCodecContext_雷霄骅的博客-CSDN博客_avcodeccontext AVCodecContext AVCodecContext是包含变量较多的结构体(感觉差不多是变量最多的结构体)结构体的定义位于avcodec.h关键的变量如下所示(仅仅考虑…