我是靠谱客的博主 忧郁刺猬,最近开发中收集的这篇文章主要介绍公众号开发入门:查询用户是否已经关注公众号?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

最近,小明在参与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”}

![

在这里插入图片描述

](https://img-blog.csdnimg.cn/20210417170732466.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjI0NDc3NQ==,size_16,color_FFFFFF,t_70)

详情查看官方文档-获取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

在这里插入图片描述

返回说明

正常情况下,微信会返回下述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”: “”
}
在这里插入图片描述

……

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

{“errcode”:40013,“errmsg”:“invalid appid”}

最后

以上就是忧郁刺猬为你收集整理的公众号开发入门:查询用户是否已经关注公众号?的全部内容,希望文章能够帮你解决公众号开发入门:查询用户是否已经关注公众号?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部