企业微信开发H5如果获取当前用户的信息
摘要:在企业开发中需要在企微侧边聊天栏里开发一个h5页面,并且使用企微提供的API获取当前用户的信息以及在聊天框中分享H5页面给对方
前提:在企微后台创建一个应用,并且配置到企微聊天栏中,
并在网页授权及JS-SDK授信给你的域名
提示:企微的侧边聊天栏里需要在与外部联系人联系才会显示,比如你企微账号加的对方的微信号
正文:
在企微要获取当前人的信息需要引入企微提供的cdn文件,因为我用的是vue3,所以直接在public/index.html下引入
<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
wx对象是挂载到window下的,如果没有可以自己挂载
<script>window.jweixin=wx;</script>
因为我要使用的的是sendChatMessage和getCurExternalContact的API,属于应用的授信API,所以要使用的是agentConfig去获取,后端生成需要提供签名signature,随机字符串nonceStr,时间戳timestamp,注意要和wx.config的获取签名区分开,这是个大坑
window.wx.agentConfig({
corpid: res.response_data.appId, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: res.response_data.agent_id, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: res.response_data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.response_data.noncestr, // 必填,生成签名的随机串
signature: res.response_data.agent_signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: [
"invoke",
"onMenuShareAppMessage",
"onMenuShareWechat",
"onMenuShareTimeline",
"startRecord",
"stopRecord",
"onVoiceRecordEnd",
"playVoice",
"pauseVoice",
"stopVoice",
"onVoicePlayEnd",
"uploadVoice",
"downloadVoice",
"chooseImage",
"previewImage",
"uploadImage",
"downloadImage",
"getLocalImgData",
"previewFile",
"getNetworkType",
"onNetworkStatusChange",
"openLocation",
"getLocation",
"startAutoLBS",
"stopAutoLBS",
"onLocationChange",
"onHistoryBack",
"hideOptionMenu",
"showOptionMenu",
"hideMenuItems",
"showMenuItems",
"hideAllNonBaseMenuItem",
"showAllNonBaseMenuItem",
"closeWindow",
"openDefaultBrowser",
"scanQRCode",
"selectEnterpriseContact",
"openEnterpriseChat",
"chooseInvoice",
"selectExternalContact",
"getCurExternalContact",
"openUserProfile",
"shareAppMessage",
"shareWechatMessage",
"startWifi",
"stopWifi",
"connectWifi",
"getWifiList",
"onGetWifiList",
"onWifiConnected",
"getConnectedWifi",
"setClipboardData",
"getClipboardData",
"sendChatMessage",
], // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
success: (res) => {
alert('成功获取权限')
},
fail: (res) => {
if (res.errMsg.indexOf("function not exist") > -1) {
alert("版本过低请升级");
} else {
alert("agentConfigFail" + JSON.stringify(res));
}
},
这个权限需要在真机或者电脑企微浏览器打开获取,没法在微信开发者工具调试(这点希望企微官方赶紧兼容,调试要么通过改hosts去访问本机,这种需要有两个域名,一个做接口域名,一个做前端访问80端口域名),所以必须部署到服务器用授信的域名去访问,通过alert查看是否获取权限成功,后面的API就可以肆意调用了,拜拜
posted on 2022-04-21 16:55 fengxiongmiao 阅读(2668) 评论(0) 编辑 收藏 举报