您当前的位置:首页 > 手机百科 > 微信百科

微信公众号添加菜单栏和网页授权

时间:2022-03-04 09:52:57  来源:  作者:it程序员

关注了微信公众号怎么获取用户的信息以及openid和手机号的绑定

1.登录微信公众平台设置需要的菜单,以绑定微信账号为例

微信公众号添加菜单栏和网页授权

 


微信公众号添加菜单栏和网页授权

 

2.网页地址填写自己接口地址或者跳转地址

3.后台接口(php 仅供参考)

微信公众号添加菜单栏和网页授权

 

两个红圈的地址是该接口地址,这个可以获取到用户的openid,下面的接口是用户的openid和手机号进行绑定

下面参考微信官方文档

如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。

关于网页授权回调域名的说明

1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;

2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面
http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com 无法进行OAuth2.0鉴权

3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可

关于网页授权的两种scope的区别说明

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

关于网页授权access_token和普通access_token的区别

1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;

2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

关于UnionID机制

1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。

2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。

关于特殊场景下的静默授权

1、上面已经提到,对于以snsapi_base为scope的网页授权,就静默授权的,用户无感知;

2、对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。

具体而言,网页授权流程分为四步:

1、引导用户进入授权页面同意授权,获取code

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

目录

1 第一步:用户同意授权,获取code

2 第二步:通过code换取网页授权access_token

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

5 附:检验授权凭证(access_token)是否有效

 

第一步:用户同意授权,获取code

在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:


https://open.weixin.qq.com/connect/oauth2/authorize?Appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。

尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问

参考链接(请在微信客户端中打开此链接体验):

scope为snsapi_base

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect

scope为snsapi_userinfo

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

尤其注意:跳转回调redirect_uri,应当使用https链接来确保授权code的安全性。

参数说明

参数

是否必须

说明

appid

公众号的唯一标识

redirect_uri

授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理

response_type

返回类型,请填写code

scope

应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )

state

重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节

#wechat_redirect

无论直接打开还是做页面302种定向时候,必须带此参数

下图为scope等于snsapi_userinfo时的授权页面:

微信公众号添加菜单栏和网页授权

 

用户同意授权后

如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。

code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

错误返回码说明如下:

返回码

说明

10003

redirect_uri域名与后台配置不一致

10004

此公众号被封禁

10005

此公众号并没有这些scope的权限

10006

必须关注此测试号

10009

操作太频繁了,请稍后重试

10010

scope不能为空

10011

redirect_uri不能为空

10012

appid不能为空

10013

state不能为空

10015

公众号未授权第三方平台,请检查授权状态

10016

不支持微信开放平台的Appid,请使用公众号Appid

 

第二步:通过code换取网页授权access_token

首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

请求方法

获取code后,请求以下链接获取access_token:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数说明

参数

是否必须

说明

appid

公众号的唯一标识

secret

公众号的appsecret

code

填写第一步获取的code参数

grant_type

填写为authorization_code

返回说明

正确时返回的JSON数据包如下:

{
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE" 
}

参数

描述

access_token

网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

expires_in

access_token接口调用凭证超时时间,单位(秒)

refresh_token

用户刷新access_token

openid

用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID

scope

用户授权的作用域,使用逗号(,)分隔

错误时微信会返回JSON数据包如下(示例为Code无效错误):

{"errcode":40029,"errmsg":"invalid code"}

 

第三步:刷新access_token(如果需要)

由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。

请求方法

获取第二步的refresh_token后,请求以下链接获取access_token:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

参数

是否必须

说明

appid

公众号的唯一标识

grant_type

填写为refresh_token

refresh_token

填写通过access_token获取到的refresh_token参数

返回说明

正确时返回的JSON数据包如下:

{ 
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE" 
}

参数

描述

access_token

网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

expires_in

access_token接口调用凭证超时时间,单位(秒)

refresh_token

用户刷新access_token

openid

用户唯一标识

scope

用户授权的作用域,使用逗号(,)分隔

错误时微信会返回JSON数据包如下(示例为code无效错误):

{"errcode":40029,"errmsg":"invalid code"}

 

第四步:拉取用户信息(需scope为 snsapi_userinfo)

如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。

请求方法

http:GET(请使用https协议)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

参数说明

参数

描述

access_token

网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

openid

用户的唯一标识

lang

返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

返回说明

正确时返回的JSON数据包如下:

{   
  "openid": "OPENID",
  "nickname": NICKNAME,
  "sex": 1,
  "province":"PROVINCE",
  "city":"CITY",
  "country":"COUNTRY",
  "headimgurl":"https://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiAIceqxibJxCfHe/46",
  "privilege":[ "PRIVILEGE1" "PRIVILEGE2"     ],
  "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

参数

描述

openid

用户的唯一标识

nickname

用户昵称

sex

用户的性别,值为1时是男性,值为2时是女性,值为0时是未知

province

用户个人资料填写的省份

city

普通用户个人资料填写的城市

country

国家,如中国为CN

headimgurl

用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。

privilege

用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)

unionid

只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。

错误时微信会返回JSON数据包如下(示例为openid无效):

{"errcode":40003,"errmsg":" invalid openid "}

 

附:检验授权凭证(access_token)是否有效

请求方法

http:GET(请使用https协议)
https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID

参数说明

参数

描述

access_token

网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

openid

用户的唯一标识

返回说明 正确的JSON返回结果:

{ "errcode":0,"errmsg":"ok"}

错误时的JSON返回示例:

{ "errcode":40003,"errmsg":"invalid openid"}


Tags:微信公众号   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
微信公众号数量达到上限怎么办
一般可以申请多少个公众号?许多用户在申请公众号时可能会遇到“公众号显示主体已达上限”的问题。这是因为在2018年11月16日对公众号申请数量进行了调整,具体调整如下:1、个人...【详细内容】
2024-01-31  Search: 微信公众号  点击:(56)  评论:(0)  加入收藏
微信公众号如何开通留言功能
留言评论功能可以使公众号内文章被关注用户留言,加强公众号与关注用户之间的互动。但是2018年2月之后注册的公众号都没有留言功能了,如何开通呢?下面我们来介绍开通微信官方留...【详细内容】
2023-10-08  Search: 微信公众号  点击:(184)  评论:(0)  加入收藏
国家安全部微信公众号正式亮相 动员全社会反间谍
7月31日,国家安全部微信公众号正式亮相。注册信息显示,该微信公众号注册于2023年7月31日,并于当天认证“国家安全部”。认证类型为“政府”,认证主体为“中华人民共和国国家安全...【详细内容】
2023-08-02  Search: 微信公众号  点击:(123)  评论:(0)  加入收藏
如何提升自媒体微信公众号文章的阅读量?这7个方法不容忽视!
自媒体已经成为了许多创作者展示才华和传播知识的重要渠道之一。而在自媒体的世界里,提升微信公众号文章的阅读量,是每位自媒体从业者都渴望达到的目标之一。在这篇文章中,忆点...【详细内容】
2023-06-29  Search: 微信公众号  点击:(208)  评论:(0)  加入收藏
利用微信公众号的图片上传接口,创造属于自己的图床功能!
作为一个技术博主,了不起不是在创作就是在创作的路上(当然偶尔也会有点恰饭文~还指望大家多多支持),特别是在写一些技术文章的时候,经常会用到图片,然而为了在多个平台同步发文,就...【详细内容】
2023-03-27  Search: 微信公众号  点击:(235)  评论:(0)  加入收藏
抖音如何跳转微信公众号?抖音引流公众号的优势和作用?
短视频时代,抖音在我们的手机上必不可少,那么大家有没有过在抖音中跳转到微信公众号的经历呢,那这个操作是怎么去实现的呢,只需要利用第三方专业引流跳转工具“天天外链”就能够...【详细内容】
2023-02-27  Search: 微信公众号  点击:(469)  评论:(0)  加入收藏
微信公众号升级图片消息功能,加码图片内容
文|陈桥辉Tech星球独家获悉,近日,微信公众号对图片消息功能进行升级,具体的升级内容包括:创作者可以填写标题;描述语由140字扩充为300字;用户在手机上可以横滑浏览所有图片,展示比...【详细内容】
2023-02-17  Search: 微信公众号  点击:(235)  评论:(0)  加入收藏
微信公众号信息流最大的三点变化
尽管短视频、直播等内容形态正在侵蚀微信公众号的流量,但不可否认,公众号仍是传递资讯、知识和观点最有力、高效的内容平台之一。本文分析了公众号的最大三点变化以及如何做好...【详细内容】
2023-02-16  Search: 微信公众号  点击:(181)  评论:(0)  加入收藏
怎样从微信公众号h5跳转小程序,难度大吗,具体是如何操作的?
微信公众号h5应该如何转跳到小程序,难度大吗?很多人心里会有这样的疑问也是正常的,认为只有“专业人员”才能够进行操作,其实不然,普通人也是能够进行操作的。实际上很简单,“专业...【详细内容】
2022-11-09  Search: 微信公众号  点击:(391)  评论:(0)  加入收藏
今日头条公众号是什么?微信公众号和今日头条号有什么区别?
刚入门自媒体的小伙伴,老是会有一些奇奇怪怪的问题,例如“今日头条公众号是什么?”“微信公众号和今日头条号有什么区别?” 等等,事实上老手早已经明白,公众号一般我们都指微信公...【详细内容】
2022-10-27  Search: 微信公众号  点击:(370)  评论:(0)  加入收藏
▌简易百科推荐
速查微信聊天最频繁对象,情侣必备!
在如今数字化交流的时代,微信无疑是我们日常生活中使用最频繁的工具之一。无论是工作、学习还是娱乐,微信都陪伴在我们身边,成为我们沟通的重要桥梁。而在微信的众多功能中,聊天...【详细内容】
2024-04-12  果果的日记    Tags:微信聊天   点击:(5)  评论:(0)  加入收藏
微信好友“隐身”删除?轻松识别已删除好友新策略
在数字化的社交世界中,微信已然成为我们与朋友、亲人保持联系的重要纽带。然而,随着微信的广泛使用,一个问题也悄然而至:有时候,我们的微信好友列表中,可能隐藏着一些已经单方面删...【详细内容】
2024-04-11  诺诺爱生活    Tags:微信好友   点击:(4)  评论:(0)  加入收藏
微信宣布打击租售微信账号行为:避免隐私泄露,成不法分子帮凶
IT之家 4 月 10 日消息,微信安全中心今日傍晚发文称,近期有部分用户利用微信社交功能,在朋友圈、微信群发布“闲置小号换零花钱”等租售微信账号的相关内容。IT之家从公告中获...【详细内容】
2024-04-11    IT之家  Tags:微信账号   点击:(5)  评论:(0)  加入收藏
一招教你怎么对微信聊天记录进行保存
在数字化交流日益频繁的今天,微信作为我们日常生活中的重要沟通工具,承载了无数珍贵的对话和回忆。聊天记录中,无论是与亲朋好友的欢笑谈天,还是工作中的重要交流,都可能成为我们...【详细内容】
2024-04-10  无心生活    Tags:聊天记录   点击:(7)  评论:(0)  加入收藏
启用微信这两大功能,快速清理手机存储
随着微信成为我们日常生活中不可或缺的通讯工具,它的功能不断丰富,使用频率也日益增加。然而,频繁的使用往往会带来手机内存空间的压力。为了保持手机的流畅运行,我们需要定期对...【详细内容】
2024-04-10  老林爱分享生活    Tags:手机存储   点击:(3)  评论:(0)  加入收藏
微信共享位置怎么换地方
微信共享位置怎么换地方的方法。必然绕不开使用微信,共享位置的使用也就是必然的。如何去修改一下安卓上的共享位置呢?对于很多人来说,虽然使用次数不频繁,但是可能有时会比较着...【详细内容】
2024-04-09  奇思妙想的哆啦    Tags:微信共享位置   点击:(4)  评论:(0)  加入收藏
微信恢复聊天记录全攻略:多种方法助你轻松找回宝贵记忆
在数字化时代,微信聊天记录往往承载着我们的许多珍贵回忆和重要信息。然而,由于各种原因,我们有时可能会误删或丢失一些聊天记录。那么,当遇到这种情况时,我们该如何恢复微信聊天...【详细内容】
2024-04-09  我们要向前进    Tags:聊天记录   点击:(8)  评论:(0)  加入收藏
如何实现微信聊天记录从旧手机到新手机的无缝对接
在数字化时代,手机已然成为我们生活中不可或缺的一部分,而微信更是我们日常沟通的重要工具。然而,当我们更换新手机时,如何将旧手机中的微信聊天记录完整地迁移到新手机,成为许多...【详细内容】
2024-04-09  诺诺爱生活    Tags:微信聊天记录   点击:(7)  评论:(0)  加入收藏
微信语言、听筒,没有声音提醒?原来是这几个地方没设置,望知晓
微信作为我们日常生活中不可或缺的通讯工具,其功能的完善和使用体验的优化一直是用户们关注的焦点。然而,有时候我们可能会遇到微信语音或听筒没有声音提醒的问题,这不仅影响了...【详细内容】
2024-04-09    小城慢时光  Tags:微信   点击:(7)  评论:(0)  加入收藏
微信朋友圈如何置顶
智能手机的时代,微信作为一款广受欢迎的社交软件,朋友圈是微信的核心功能之一。在微信朋友圈中,有些信息对于小伙伴们来说非常重要,为了方便自己和朋友找到可以选择置顶,置顶后自...【详细内容】
2024-04-08  大冬瓜pc技术支持    Tags:微信朋友圈   点击:(8)  评论:(0)  加入收藏
站内最新
站内热门
站内头条