企业微信jdk 授权 记录

1、npm install @wecom/jssdk

2、index.html 引入

javascript 复制代码
<script src="https://wwcdn.weixin.qq.com/node/open/js/wecom-jssdk-2.0.2.js"></script>

3、创建js import * as ww from "@wecom/jssdk";

javascript 复制代码
/**
 * 获取企业微信jdk局方法--------------------------1
 */
import { accessConfig, accessAgentConfig } from "../api/sdk/index";
import * as ww from "@wecom/jssdk";
/**
 *** 作者: Lenovo-【Lindon】
 *** 文件名称: weChat
 *** 文件创建日期: 2024/4/30
 ***
 */
// 注册企业微信应用信息
// 注册企业微信应用信息
export async function registerWeChat() {
  // ✅ 前置处理:确保URL处理一致
  const getCleanUrl = () => window.location.href.split('#')[0];

  // ✅ 企业签名(同步改造)
  const getConfigSignature = async () => {
    try {
      console.log('[DEBUG] 开始获取企业签名');
      const res = await accessConfig({ path: getCleanUrl() });
      if (res?.code !== 200) throw new Error('企业签名接口异常');
      console.log('[DEBUG] 企业签名数据:', res.data);
      return res.data; // ✅ 直接返回后端结构体
    } catch (error) {
      console.error('[ERROR] 企业签名失败:', error);
      throw error; // 必须抛出以中断流程
    }
  };

  // ✅ 应用签名(保持原有正确结构)
  const getAgentConfigSignature = async (urlFromSDK) => {
    try {
      console.log('[DEBUG] 开始获取应用签名,SDK传入URL:', urlFromSDK);
      const pureUrl = new URL(urlFromSDK.split('#')[0]).href; // ✅ 使用SDK提供的URL
      const res = await accessAgentConfig({ path: pureUrl });
      if (res?.code !== 200) throw new Error('应用签名接口异常');
      console.log('[DEBUG] 应用签名数据:', res.data);
      return res.data;
    } catch (error) {
      console.error('[ERROR] 应用签名失败:', error);
      throw error;
    }
  };

  // ✅ 注册时开启调试模式
  ww.register({
    corpId: "wwf823be6e18d7191f",
    agentId: 1000003,
    jsApiList: ["getCurExternalContact","scanQRCode"],
    getConfigSignature,
    getAgentConfigSignature,
    debug: true, // ✅ 关键!开启调试模式
    onConfigSuccess(res) {
      console.log('[SUCCESS] 配置成功:', res);
    },
    onConfigFail(res) {
      console.error('[FAIL] 配置失败:', res);
      alert('SDK配置失败,请检查控制台');
    }
  });
}


//后续在哪个页面如果需要使用到sdk,都需要先注册registerWeChat,然后再调用对应的sdk方法

4、将方法引入到 需要使用的页面 中 然后调用 registerWeChat() 进行授权 可以在 加载时Mounted 去授权

5、使用示例

javascript 复制代码
点击事件

function fafacc() {
  ww.getCurExternalContact({
    success(res) {
      console.log('获取外部联系人id成功', res)
    },
    fail(res) {
      console.log('获取外部联系人id失败', res)
    },
  })
}
相关推荐
vx-bot5556663 分钟前
企业微信接口在混合云环境下的集成架构与网络互联方案企业微信接口在混合云环境下的集成架构与网络互联方案
网络·架构·企业微信
王者鳜錸1 天前
企业微信自动化发消息-从0到1开发实践
运维·自动化·企业微信
梦想的旅途22 天前
RPA 驱动企微非官方 API:外部群批量推送核心优化
企业微信·rpa
2501_941982052 天前
企微非官方API开发:RPA与协议结合的混合驱动实现
网络·企业微信·rpa
2501_941982052 天前
半手企微 API 开发:RPA 架构下外部群功能落地的关键步骤
架构·企业微信·rpa
fengkaiyz3 天前
企业微信会话存档服务
企业微信
天空属于哈夫克33 天前
企微自动化控制台:跨语言调用与多进程管理的技术架构
架构·自动化·企业微信
2501_941982053 天前
企微中台架构:非官方接口与企业私有化 CRM 的深度集成
架构·企业微信
vx-bot5556664 天前
企业微信接口在微服务协同架构中的事件桥接与状态同步模式
微服务·架构·企业微信
2501_941982054 天前
企业微信外部群精准运营:API 主动推送消息开发指南
大数据·人工智能·企业微信