接入插件
添加插件
在使用插件前,首先要在小程序管理后台的“设置-第三方服务-插件管理”中添加插件。开发者可登录小程序管理后台,通过 appid 查找插件并添加。需要申请并等待插件管理员【javali(李莹)】通过后,方可在小程序中使用相应的插件。
引入插件
小程序内引入插件配置步骤
1、在教育号开发者平台申请成为教育号开发者,相关审核请联系【v_vyywu(吴羽)】【v_vwyywang(王瑜)】
2、成为了教育号开发者后,需要创建一个教育号应用并进行相关配置
- 打开应用管理->点击新增应用->填写相关信息->完成创建
3、将创建成功的教育号应用的appid和secretkey(在应用详情里)以及将要引入插件的小程序的Appid和SecretKey一起提供给教育号接口人进行教育号应用和接入小程序的绑定
4、登录要接入插件的小程序后台,先在小程序后台“设置-第三方服务-插件管理”中添加插件,然后等待插件管理员同意申请使用教育号登录插件后即可配置使用
5、使用如下命令在小程序代码目录下安装miniapp-epaas-sdk
,没有package.json
文件时,可先执行 npm init -y
tnpm install @tencent/miniapp-epaas-sdk -S
也可以到开放平台进行下载
6、在小程序开发者工具中:顶部栏->工具->构建npm
;构建完成可以看到miniprogram_npm
的文件夹
7、在app.json
的plugins
字段的对象里添加插件配置:
"plugins": {
...
"login-plugin": {
"version": "2.1.4", // 插件版本
"provider": "wx8099b285af1443c4", // 插件小程序appid
"export": "loginPluginConfig.js",
"genericsImplementation": {
"set-first-phone": {
"epaas-phone-button": "miniprogram_npm/@tencent/miniapp-epaas-sdk/button"
}
}
}
...
},
8、插件配置里需要一个 loginPluginConfig.js
的文件,和app.json同级(或者放置其他目录也可,但需插件配置的export字段也需要进行相应的变更),参考官方文档 导出到插件 (阅读“导出到插件”部分)
// loginPluginConfig.js
module.exports = {
appWX: wx,
env: 'online', // 'dev': 开发环境 'test': 测试环境 'online': 正式环境; 不配置则默认为线上环境
};
完成上面的步骤后,即可在小程序页面里,需要登录时带上相应参数跳转到入口页面即可
plugins 定义段中可以包含多个插件声明,每个插件声明以一个使用者自定义的插件引用名作为标识,并指明插件的 appid 和需要使用的版本号。其中,引用名(如上例中的 login-plugin)由使用者自定义,无需和插件开发者保持一致或与开发者协调。在后续的插件使用中,该引用名将被用于表示该插件。
本插件AppId: wx8099b285af1443c4 请使用最新版本(version): 2.1.4
注意:插件最低基础库版本要求: 2.12.2
特别注意:向插件传参时请使用encodeURIComponent转码,插件接收时会使用decodeURIComponent解码
示例代码
<view style="padding: 10px; margin-top: 10vh;">
<button bindtap="goLogin">前往登录插件</button>
<!-- 初次调用wx.login、wx.getUserInfo 失败后显示权限获取按钮 -->
<button
wx:if="{{showGetAuthBtn}}"
open-type="getUserInfo"
bindgetuserinfo="handlerGetUserInfo">
获取信息权限
</button>
</view>
goLogin: function () {
let self = this
// 组装必传参数
var redirect_uri = '/pages/result/result' // 登录成功后的回跳页面
var appid = 10000
epaasLogin({
redirect_uri: encodeURIComponent(redirect_uri),
appid
})
}
// 回跳页面onLoad,在此处获取登录成功后拿到的登录授权code
onLoad: function (options) {
console.log(options)
this.setData({
'code': options.code
})
}
获取code之后请参照 教育号开放平台文档 code换取access_token 来获取用户登录授权token
参数说明
参数 | 类型 | 描述 |
---|---|---|
redirect_uri | String | 登录成功后的回跳页面,回跳时会在跳转链接上携带登录授权code |
登录成功回调携带的参数
携带的参数字段名 | 类型 | 描述 |
---|---|---|
code | String | 登录授权code |
appid | String | 教育号应用id(服务商后台应用详情的SuiteId) |
multi_role | String | 当前用户在appid应用是否拥有的多身份,1是0否;仅在微信端的登录才有 |
env_id | String | 私有化环境id;仅在登录私有化环境时才有 |
子应用登录错误码列表
errorcode | 描述 |
---|---|
3 | 服务异常 |
12 | login-token已过期,请重新登录 |
49 | 没有权限跳转目标应用 |