企业微信JS-SDK 流程图
企业微信JS-SDK使用
- 创建需要调用企业微信的api列表
所有js接口列表
https://work.weixin.qq.com/api/doc/90001/90144/90540
const jsApiList = [
"hideMenuItems", // 批量隐藏功能按钮
"showMenuItems", // 批量显示功能按钮
"hideAllNonBaseMenuItem", // 隐藏所有非基础按钮
"showAllNonBaseMenuItem", // 显示所有功能按钮
"showOptionMenu", // 显示菜单项
"scanQRCode", // 扫描二维码
"getLocation" // 获取经纬度
]
- 调用后台api获取配置参数,然后config接口注入权限验证配置
const wxConfig = app_identifier => {
Api.getConfig({
identifier: app_identifier,
url: window.location.href
}).then(res => {
if (res.data) {
wx.config({
beta: true,
debug: false,
appId: res.data.appid,
timestamp: res.data.timestamp,
nonceStr: res.data.noncestr,
signature: res.data.signature,
jsApiList: jsApiList
})
wx.ready(() => {
console.log("微信sdk成功")
})
wx.error(res => {
console.log(res)
})
}
})
}
- 调用agentConfig(看具体情况是否需要)
- config注入的是企业的身份与权限,而agentConfig注入的是应用的身份与权限。尤其是当调用者为第三方服务商时,通过config无法准确区分出调用者是哪个第三方应用,而在部分场景下,又必须严谨区分出第三方应用的身份,此时即需要通过agentConfig来注入应用的身份信息。
- 调用wx.agentConfig之前,必须确保先成功调用wx.config. 注意:从企业微信3.0.24及以后版本(可通过企业微信UA判断版本号),无须先调用wx.config,可直接wx.agentConfig
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
wx.agentConfig({
corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: '', // 必填,企业微信的应用id (e.g. 1000247)
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ['selectExternalContact'], //必填
success: function(res) {
// 回调
},
fail: function(res) {
if(res.errMsg.indexOf('function not exist') > -1){
alert('版本过低请升级')
}
}
});
- 在router文件调用
同一个url仅需调用一次,对于变化url的可在每次url变化时进行调用,即在路由钩子函数调用
// 全局后置钩子
router.afterEach(() => {
// 需要 sdk 的地方才需要
if (to.meta.need_wx_sdk) {
wxConfig(app_identifier)
}
})
企业微信文档链接:
https://work.weixin.qq.com/api/doc/90001/90144/90547