摘要:在企業開發中需要在企微側邊聊天欄里開發一個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就可以肆意調用了,拜拜