# 企业微信JS_SDK封装 **Repository Path**: hu_b_admin/wxwork_js_sdk ## Basic Information - **Project Name**: 企业微信JS_SDK封装 - **Description**: 企业微信侧边栏SDK 封装 解决接入企业微信开发侧边栏 H5,并使用 JS-SDK API 功能出现的一系列摸不着头脑的问题 - **Primary Language**: TypeScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-17 - **Last Updated**: 2022-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业微信JS_SDK封装 #### 介绍 企业微信侧边栏SDK 封装 解决接入企业微信开发侧边栏 H5,并使用 JS-SDK API 功能出现的一系列摸不着头脑的问题 #### 简单使用 ```javascript //初始化 js_sdk await initSdk(getSignature); //调用 invoke 方法 await invoke(K,Y); // k:调用的方法 Y:调用参数 //示例 await invoke("getContext").then(res => { //判断入口是否可获取外部联系人信息 if (res.entry == 'contact_profile' || res.entry == 'single_chat_tools') { //获取外部联系人 invoke("getCurExternalContact").then(({userId}) => { this.userId = userId }) //无法获取跳转首页 } else { Toast.fail('该入口无法获取客户信息'); this.$router.push({name: 'home'}); } }) // 调用 Call 方法 await asyncCall(); //异步调用 await call(); //普通调用 //示例 //创建客户会话群聊 await asyncCall("openEnterpriseChat", { userIds: this.groupChatParam.userIds,//参与会话的企业成员列表,格式为userid1;userid2;...,用 externalUserIds: this.groupChatParam.externalUserIds, // 参与会话的外部联系人列表,格式为userId1;use groupName: '讨论组', // 会话名称。单聊时该参数传入空字符串""即可。 chatId: '', // 若要打开已有会话,需指定此参数。如果是新建会话,chatId必须为空串 success: function (res) { res.chatId } }) ``` ### 工具api 主要提供两个 API,负责获取用户身份以及初始化 JS-SDK。 # checkRedirect 该函数用于检查是否需要重定向,并自动获取 userId,缓存到 Cookie 的函数。 调用后上面方法后,页面 Cookie 为 document.cookie = 'userId=xxx'。 你可以通过 js-cookie 的 Cookies.get('userId') 来取得当前 userId。 ```javascript import {checkRedirect} from 'wecom-sidebar-jssdk'; // 侧边栏配置 const config = { // 在 https://work.weixin.qq.com/wework_admin/frame#profile 这里可以找到 corpId: 'xxx', // 在 https://work.weixin.qq.com/wework_admin/frame#apps 里的自建应用里可以找到 agentId: 'yyy' } // code 换取用户身份 const fetchUserId = async (code: string): Promise => { const response = await axios.request({ method: 'GET', url: '/user', params: {code} }); return response.data.userId; } await checkRedirect(config, fetchUserId) ``` ### initSdk 初始化 JS-SDK 包含了 wx.config,wx.ready,wx.agentConfig 的初始化。 ```javascript // 侧边栏配置 const config = { // 在 https://work.weixin.qq.com/wework_admin/frame#profile 这里可以找到 corpId: 'xxx', // 在 https://work.weixin.qq.com/wework_admin/frame#apps 里的自建应用里可以找到 agentId: 'yyy' } // 获取签名 export const fetchSignatures = async () => { const response = await axios.request({ method: 'GET', url: '/signatures', params: { url: window.location.href } }) return response.data; } await initSdk(config, fetchSignatures); ```