公众号开发入门:查询用户是否已经关注公众号?
背景
最近,小明在参与app改版时,有一个业务场景是:用户完成指定的任务,判断当前登录用户是否已经关注指定的官方微信公众号,如果关注会获得相应的奖励,为了弥补语言的匮乏,小明偷偷给大家上张图:
众所周知,我们程序员第一次接收到之前没做过的需求时,第一步肯定离不开搜查资料(我觉得国内的产品,百度就够用),小明也不例外,花了大概五分钟,一切就了然于胸,由此可见,程序员的搜商很重要 ?。ok,废话少说,翠花,上菜!。
必备条件
- 微信公众平台-开发-基本配置-成为开发者,得到
appId
和appSecret
(注意:appSecret
只展示一次,需保存下来,否则需要重置获取), - 添加ip白名单,这个是为了提高公众平台开发者接口调用的安全性,避免一旦开发者ID和密码泄露后给帐号造成损失。对调用“获取
access_token
”接口增加IP白名单校验:只有将IP地址设置为公众号的IP白名单,才能成功调用该接口。 - 微信认证通过,拥有获取用户基本信息的权限(注意:如果帐号主体为个人,是无法开通微信认证的);
详细步骤
获取access_token
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
grant_type | 是 | 获取access_token填写client_credential |
appid | 是 | 第三方用户唯一凭证 |
secret | 是 | 第三方用户唯一凭证密钥,即appsecret |
返回说明
正常情况下,微信会返回下述JSON数据包给公众号:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数说明
参数 | 说明 |
---|---|
access_token | 获取到的凭证 |
expires_in | 凭证有效时间,单位:秒 |
错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
{"errcode":40013,"errmsg":"invalid appid"}
返回码说明
返回码 | 说明 |
---|---|
-1 | 系统繁忙,此时请开发者稍候再试 |
0 | 请求成功 |
40001 | AppSecret错误或者AppSecret不属于这个公众号,请开发者确认AppSecret的正确性 |
40002 | 请确保grant_type字段值为client_credential |
40164 | 调用接口的IP地址不在白名单中,请在接口IP白名单中进行设置。(小程序及小游戏调用不要求IP地址在白名单内。) |
详情查看官方文档-获取access_token: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
获取用户openId或者unionId
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(说明:OpenID就是加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。因此,如果要判断当前登陆app的微信用户是否关注官方微信公众号,我们要使用的是unionId。需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
根据前两个步骤获得的信息(access_token和openId或者unionId),调用微信接口获取用户基本信息
完整的用户基本信息包括昵称、头像、性别、所在城市、语言和关注时间等。
接口调用请求说明:
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
openid | 是 | 普通用户的标识,对当前公众号唯一 |
lang | 否 | 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,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 | 用户所在城市 |
……
错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
{"errcode":40013,"errmsg":"invalid appid"}
详情查看官方文档-获取用户基本信息 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839
好了,以上就是今天小明整理给大家的有关公众号开发的文档。欢迎大家多多交流学习。
欢迎关注微信公众号,获取更多资源
公众号开发入门:查询用户是否已经关注公众号?相关推荐
- 生成微信公众号二维码(用户扫码关注公众号)
1.token 文件 /*** https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev&token=1 ...
- 微信公众号开发入门教程第一篇
微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...
- JAVA微信公众号开发入门
好久没进博客,最近应某人的要求,要每周写一篇博客,故此今天就把我这周刚学的微信公众号开发的知识在此总结总结,以供后人查阅.我写博客都是简要白话文,勿喷. 1.为什么要学微信公众号开发 微信的用户量庞大 ...
- 微信开发学习总结(一)——微信公众号开发入门指引
本节要求: ①微信公众号申请 ②测试公众号的注册 ③准备微信公众号开发的环境 微信公众号开发入门指引 微信公众号的接入在微信公众平台-微信公众平台技术文档中有着详细的介绍.在进行微信开发前,建议先完整 ...
- Java微信公众号开发入门:一、微信公众号简介
微信公众号 微信公众号,是微信公众平台的一种账户类型,旨在为特定或公开用户群体提供信息.营销等服务.用户可通过关注公众号来使用特定服务,进行不同活动. 微信公众号主要包括三类:订阅号.服务号.企业号( ...
- 微信公众平台开发入门
微信公众平台开发入门 开发简介 公众号的分类 微信公众平台概述 微信公众平台和微信开放平台的区别 开发需知 开发模式 开始开发 开发中遇到的问题 开发简介 公众号的分类 我们平常在微信应用上会看到有很 ...
- 视频教程-微信公众平台开发入门-微信开发
微信公众平台开发入门 订阅后,请点击此处观看大牛全套视频课程:课程播放页链接 价格可能因活动略有浮动 刘运强 ¥39.00 立即订阅视频课 订阅后:请点击此处观看视频课程 视频教程-微信公众平台开发入 ...
- 微信公众平台开发入门教程(图文)
关键字:微信公众平台开发入门 作者:贝创工作室 原文: http://www.cnblogs.com/imaker/p/5491433.html 背景知识:微信公众平台的开发需要有一定的PHP基础知识 ...
- 基于php的微信公众平台开发入门实例
作者:zbtree 这篇文章主要介绍了基于php的微信公众平台开发入门,实例分析了微信公众平台从注册.配置方法及接口代码的实现技巧,深入浅出.希望可以帮助大家快速入门. CSDN学院开设了系列直播&l ...
- [050] 微信公众平台开发入门视频教程已公布
2014年4月26日晚8点.我在CSDN社区在线培训课堂解说了微信公众平台开发入门的相关知识.受到广大网友的一致好评.在此非常感谢大家的支持.课程结束后,非常多网友表示因为报名人数限制.暂时有事等原因 ...
最新文章
- tensorflow 1.x Saver(保存与加载模型) 预测
- linux shell命令设置内存大小运行jar文件
- 微软职位内部推荐-Senior BSP Engineer
- vue 页面使用百度地图
- ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别
- sap后台配置原因代码_【MM配置】Inventory Management 库存管理
- HDU2098 分拆素数和【筛选法】
- EMR 配置纪录(不断更新)
- css高度最小值,兼容IE6、7、8和FF
- uboot引导内核全过程
- 正点原子STM32串口例程解析
- 串行接口芯片16550
- 畅享9能改鸿蒙,华为畅享9 root教程_畅享9卡刷root包来获取root权限的方法
- 23考研需要准备哪些学习资料?
- 神经网络训练算法的调用,人工神经网络训练案例
- Jenkins安装并配置加速器
- 宫崎骏魔幻动画电影《哈尔的移动城堡》高清720P,国粤日三语
- ADAS进入「红海争夺」,这家外资Tier1「降本30%」应战
- 容器技术发展现状与展望
- 运筹学基础,这个可以懂(上)