2021-03-09 企業(yè)微信開發(fā) Vue wxConfig agentConfig 授權 每個頁面鑒權。才能調(diào)用其他的api

所有需要使用JS-SDK的頁面必須先注入配置信息摔敛,否則將無法調(diào)用(同一個url僅需調(diào)用一次适袜,對于變化url的SPA(single-page application)的web app可在每次url變化時進行調(diào)用)。

這個很重要舷夺,每個頁面需要引入權限

   jsApiList: [
        'shareAppMessage',
        'previewFile',
        'selectEnterpriseContact',
        'onMenuShareAppMessage',
        'invoke',
        'hideOptionMenu',
        'showOptionMenu'
    ] // 必填苦酱,需要使用的JS接口列表,凡是要調(diào)用的接口都需要傳進來

官方文檔:
https://open.work.weixin.qq.com/api/doc/90000/90135/90226

2.下載好文件给猾,在main.js中引入文件疫萤。


image.png

3.路由

import { wxAuth } from '@/utils/wx-auth'; // 授權文件,見步驟4

routers.afterEach((to: any, from: any) => {
    wxAuth(to);
});

4.授權的js文件敢伸,例如wx-auth.ts扯饶。內(nèi)容如下:

import network from '@/network'; // 這個是自己項目里的網(wǎng)絡層,用于調(diào)用接口
import Vue from 'vue';

const wxAuth = async (to?: any) => {
    const tempUrl = window.location.protocol + '//' + window.location.host + '/nwd-enterprise-wechat' + to.fullPath;
    const urlNow = encodeURIComponent(tempUrl);
    console.log('當前授權URL:', urlNow);
    const noncestr = Math.floor(Math.random() * 100000000000000);
    const body = {
        url: urlNow,
        timestamp: (new Date() as any) - 0,
        nonceStr: noncestr
    };
    const wxConfigParams = await network.common.getWxConfigParams(body); // 通過接口池颈,獲取wxConfig的參數(shù)
    const appSignature = await network.common.getAppSignature(body); // 通過接口尾序,獲取agentConfig的參數(shù)
    Vue.prototype.$wx.config({
        beta: true, // 必須這么寫,否則wx.invoke調(diào)用形式的jsapi會有問題
        debug: false, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來躯砰,若要查看傳入的參數(shù)每币,可以在pc端打開,參數(shù)信息會通過log打出琢歇,僅在pc端時才會打印兰怠。
        appId: wxConfigParams.appId, // 必填,企業(yè)微信的corpID
        timestamp: wxConfigParams.timestamp, // 必填李茫,生成簽名的時間戳
        nonceStr: wxConfigParams.nonceStr, // 必填揭保,生成簽名的隨機串
        signature: wxConfigParams.signature, // 必填,簽名魄宏,見 附錄-JS-SDK使用權限簽名算法
        jsApiList: [
            'shareAppMessage',
            'previewFile',
            'selectEnterpriseContact',
            'onMenuShareAppMessage',
            'invoke',
            'hideOptionMenu',
            'showOptionMenu'
        ] // 必填秸侣,需要使用的JS接口列表,凡是要調(diào)用的接口都需要傳進來
    });
    Vue.prototype.$wx.ready(function() {
        console.log('wx.agentConfig:BEGIN');const u = navigator.userAgent;
        const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // 安卓
        const isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios終端
        if (isAndroid) {
            console.log('安卓手機');
            Vue.prototype.$wx.invoke('agentConfig', {
                corpid: appSignature.appId, // 必填,企業(yè)微信的corpid味榛,必須與當前登錄的企業(yè)一致
                agentid: '10086', // 必填方篮,企業(yè)微信的應用id (e.g. 1000247)生產(chǎn)環(huán)境 寫自己環(huán)境的agentid
                timestamp: appSignature.timestamp, // 必填,生成簽名的時間戳
                nonceStr: appSignature.nonceStr, // 必填励负,生成簽名的隨機串
                signature: appSignature.signature, // 必填藕溅,簽名,見附錄-JS-SDK使用權限簽名算法
                jsApiList: [
                    'openUserProfile',
                    'previewFile'
                ], // 必填
            }, function(res) {
                console.log('result', res);
            });
        }
        if (isIOS) {
            console.log('蘋果手機');
            Vue.prototype.$wx.agentConfig({
                corpid: appSignature.appId, // 必填继榆,企業(yè)微信的corpid巾表,必須與當前登錄的企業(yè)一致
                agentid: '10086', // 必填,企業(yè)微信的應用id (e.g. 1000247)生產(chǎn)環(huán)境
                timestamp: appSignature.timestamp, // 必填略吨,生成簽名的時間戳
                nonceStr: appSignature.nonceStr, // 必填集币,生成簽名的隨機串
                signature: appSignature.signature, // 必填,簽名翠忠,見附錄-JS-SDK使用權限簽名算法
                jsApiList: [
                    'openUserProfile',
                    'previewFile'
                ], // 必填
                success(res: any) {
                    console.log('agentConfig', res);
                },
                fail(res: any) {
                    console.log('err', res);
                    if (res.errMsg.indexOf('function not exist') > -1) {
                        alert('版本過低請升級');
                    }
                }
            });
        }
    });
};

export {
    wxAuth,
};

5.頁面中使用api

// 選人
selectUser() {
  // 企業(yè)微信環(huán)境:
        const that = this;
        Vue.prototype.$wx.invoke(
            'selectEnterpriseContact',
            {
                fromDepartmentId: 0, // 必填鞠苟,表示打開的通訊錄從指定的部門開始展示,-1表示自己所在部門開始, 0表示從最上層開始
                mode: 'single', // 必填秽之,選擇模式当娱,single表示單選,multi表示多選
                type: ['user'], // 必填考榨,選擇限制類型跨细,指定department、user中的一個或者多個
                selectedDepartmentIds: [], // 非必填河质,已選部門ID列表冀惭。用于多次選人時可重入,single模式下請勿填入多個id
                selectedUserIds: [] // 已選成員的ID
            },
            function(res) {
                if (res.err_msg == 'selectEnterpriseContact:ok') {
                    const userInfo = res.result.userList[0];
                }
            }
        );  
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掀鹅,一起剝皮案震驚了整個濱河市散休,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乐尊,老刑警劉巖戚丸,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異科吭,居然都是意外死亡昏滴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門对人,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拂共,你說我怎么就攤上這事牺弄。” “怎么了宜狐?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵势告,是天一觀的道長蛇捌。 經(jīng)常有香客問我,道長咱台,這世上最難降的妖魔是什么络拌? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮回溺,結果婚禮上春贸,老公的妹妹穿的比我還像新娘。我一直安慰自己遗遵,他們只是感情好萍恕,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著车要,像睡著了一般允粤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翼岁,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天类垫,我揣著相機與錄音,去河邊找鬼琅坡。 笑死阔挠,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的脑蠕。 我是一名探鬼主播购撼,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谴仙!你這毒婦竟也來了迂求?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晃跺,失蹤者是張志新(化名)和其女友劉穎揩局,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掀虎,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡凌盯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烹玉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驰怎。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖二打,靈堂內(nèi)的尸體忽然破棺而出县忌,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布症杏,位于F島的核電站装获,受9級特大地震影響,放射性物質發(fā)生泄漏厉颤。R本人自食惡果不足惜穴豫,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逼友。 院中可真熱鬧精肃,春花似錦、人聲如沸翁逞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挖函。三九已至状植,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怨喘,已是汗流浹背津畸。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留必怜,地道東北人肉拓。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像梳庆,于是被迫代替她去往敵國和親暖途。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容