最近,小明在参与app改版时,有一个业务场景是:用户完成指定的任务,判断当前登陆用户是否已经关注指定的官方微信公众号,若是关注会得到相应的奖励,为了弥补语言的匮乏,小明偷偷给你们上张图:程序员
众所周知,咱们程序员第一次接收到以前没作过的需求时,第一步确定离不开搜查资料(我以为国内的产品,百度就够用),小明也不例外,花了大概五分钟,一切就了然于胸,因而可知,程序员的搜商很重要 😂。ok,废话少说,翠花,上菜!。小程序
appId
和 appSecret
(注意:appSecret
只展现一次,需保存下来,不然须要重置获取),access_token
”接口增长IP白名单校验:只有将IP地址设置为公众号的IP白名单,才能成功调用该接口。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数据包给公众号:api
{"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(说明:OpenID就是加密后的微信号,每一个用户对每一个公众号的OpenID是惟一的。对于不一样公众号,同一用户的openid不一样)。特别须要注意的是,若是开发者拥有多个移动应用、网站应用和公众账号,可经过获取用户基本信息中的unionid来区分用户的惟一性,由于只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号,用户的unionid是惟一的。换句话说,同一用户,对同一个微信开放平台下的不一样应用,unionid是相同的。所以,若是要判断当前登录app的微信用户是否关注官方微信公众号,咱们要使用的是unionId。须要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来知足上述需求。app
完整的用户基本信息包括昵称、头像、性别、所在城市、语言和关注时间等。
接口调用请求说明:微信公众平台
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
好了,以上就是今天小明整理给你们的有关公众号开发的文档。欢迎你们多多交流学习。