微信公众号, 小程序相关知识文档
在项目中我们经常和公众号, 小程序, 开放平台等打交道. 对于他们之间的关系, 开发人员需要非常熟悉. 但是, 实际情况是很多小伙伴可能不是很熟悉, 这里简单整理了一些微信生态里的相关知识, 供各位小伙伴参考.
一, 微信生态常用名词
1.openId
openid 就是用户在微信公众号, 小程序的唯一标识.
在关注者与公众号产生消息交互后, 公众号可获得关注者的 OpenID(加密后的微信号, 每个用户对每个公众号的 OpenID 是唯一的. 对于不同公众号, 同一用户的 openid 不同).
2.unionId(打通不同公众号, 小程序的神器)
如果开发者有在多个公众号, 或在公众号, 移动应用之间统一用户帐号的需求, 需要前往微信开放平台 (open.weixin.qq.com) 绑定公众号后, 才可利用 UnionID 机制来满足上述需求.
因为只要是同一个微信开放平台帐号下的移动应用, 网站应用和公众帐号, 用户的 unionid 是唯一的. 换句话说, 同一用户, 对同一个微信开放平台下的不同应用, unionid 是相同的.
3.AppID,AppSecret
AppID: 开发者 ID, 有些叫 AppKey AppSecret: 开发者密码 二者配合使用, 可调用公众号的接口能力; 这是官方的说法, 那我再说的直白点, 就是当你的开发过程中有使用人家微信相关功能时候, 必须有在人家官方认证过的账号密码.
4. 微信开发平台
平台定位: 主要面对移动应用 / 网站应用开发者, 为其提供微信登录, 分享, 支付等相关权限和服务.
二, 微信公众号
公众号跳转 h5
微信公众号可以跳转 h5 非常的简单, 直接在公众号里面配置链接即可. 当然, 我们经常会需要拿到一些用户信息, 例如 openID, 头像昵称等, 还有跳转的 h5 需要做分享, 下面详细讲一下
1. 直接从微信公众号进入 h5 链接
这种情况, 用户已关注公众号, 我们可以拿到用户的头像, 昵称, 地址, openid,unionID 等用户信息, 没有任何的限制.
2. 授权登录(无需关注)
如果用户在微信客户端中访问第三方网页, 公众号可以通过微信网页授权机制, 来获取用户基本信息, 进而实现业务逻辑
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, 如果公众号登录授权给了第三方开发者来进行管理, 则不必做任何设置, 由第三方代替公众号实现网页授权即可
1. 静默授权 用户无感知, 可以拿到用户的 openid, 自动跳转到回调页面
scope 为 snsapi_base
2. 非静默授权 有弹窗, 需要用户确认, 可以获取到用户的基础信息(昵称, 头像, openId,unionId 等)
scope 为 snsapi_userinfo
微信公众号分享
1. 先登录微信公众平台进入 "公众号设置" 的 "功能设置" 里填写 "JS 接口安全域名".
2. 在需要分享的页面中引入 JS 文件
http(s)://res.wx.qq.com/open/JS/jweixin-1.4.0.JS
支持使用 AMD/CMD 标准模块加载方法加载
3. 通过 config 接口注入权限验证配置, 然后调用分享接口设置设置分享的标题, 链接, 图片等
- wx.config({
- debug: true, // 开启调试模式, 调用的所有 API 的返回值会在客户端 alert 出来, 若要查看传入的参数, 可以在 pc 端打开, 参数信息会通过 log 打出, 仅在 pc 端时才会打印.
- appId: '', // 必填, 公众号的唯一标识
- timestamp: , // 必填, 生成签名的时间戳
- nonceStr: '', // 必填, 生成签名的随机串
- signature: '',// 必填, 签名
- jsApiList: [] // 必填, 需要使用的 JS 接口列表
- });
- wx.ready(function () { // 需在用户可能点击分享按钮前就先调用
- wx.updateAppMessageShareData({// 自定义 "分享给朋友" 及 "分享到 QQ" 按钮的分享内容
- title: '', // 分享标题
- desc: '', // 分享描述
- link: '', // 分享链接, 该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
- imgUrl: '', // 分享图标
- success: function () {
- // 设置成功
- }
- }),
- wx.updateTimelineShareData({ // 自定义 "分享到朋友圈" 及 "分享到 QQ 空间" 按钮的分享内容
- title: '', // 分享标题
- link: '', // 分享链接, 该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
- imgUrl: '', // 分享图标
- success: function () {
- // 设置成功
- }
- })
- });
微信公众号跳转小程序
公众号可关联同主体的 10 个小程序及不同主体的 3 个小程序. 同一个小程序可关联最多 50 个公众号. 1, 登录公众号 - 小程序 - 管理小程序 - 添加
2, 管理员扫码确认
3, 输入需要绑定的小程序 appID, 查找小程序并发送绑定邀请
4, 小程序管理员接收邀请
5, 绑定完成 关联小程序后系统将自动向公众号粉丝推送关联成功消息, 点击消息即可跳转至小程序.
微信小程序
小程序跳转 h5
web-view 组件可以支持在小程序内打开小程序, 会自动铺满整个小程序页面, 个人类型的小程序暂不支持使用.
webview 指向网页的链接. 可打开关联的公众号的文章, 其它网页需登录小程序管理后台配置业务域名
小程序跳转小程序
每个小程序可跳转的其他小程序数量限制为不超过 10 个
跳转其他小程序功能, 则需要在代码配置中声明将要跳转的小程序名单(在 App.JSON 里面配置), 限定不超过 10 个
- wx.navigateToMiniProgram(Object object)// 打开另一个小程序
- wx.navigateBackMiniProgram(Object object)// 返回到上一个小程序. 只有在当前小程序是被其他小程序打开时可以调用成功
小程序内关注公众号
official-account:// 关注公众号组件
使用组件前, 需前往小程序后台, 在 "设置"->"关注公众号" 中设置要展示的公众号. 注: 设置的公众号需与小程序主体一致.
来源: http://www.jianshu.com/p/473694ba6f95