当前位置: 首页 > news >正文

企业微信jdk 授权 记录

1、npm install @wecom/jssdk

2、index.html 引入 

<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";

/*** 获取企业微信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提供的URLconst 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、使用示例

点击事件function fafacc() {ww.getCurExternalContact({success(res) {console.log('获取外部联系人id成功', res)},fail(res) {console.log('获取外部联系人id失败', res)},})
}

http://www.xdnf.cn/news/234919.html

相关文章:

  • 蛋白质数据库InterPro介绍
  • 垒球世界纪录多少米·棒球1号位
  • ComfyUI 学习笔记,案例3:img2img
  • Attention层的FLOPs计算
  • Linux 检查口令策略设置是否符合复杂度要求
  • 《FastAPI零基础入门与进阶实战》第10篇:Token验证
  • echarts
  • Python-pandas-操作csv文件(读取数据/写入数据)及csv语法详细分享
  • MiWi|Microchip开发的专有无线通信协议,适用于低功耗、短距离的无线个人局域网【无线通信小百科】
  • 简单表管理
  • SV 仿真的常识
  • 从有线到无线:冶炼工厂的高效转型
  • C盘哪些文件删除之后无影响,可以清理磁盘空间。
  • Web应用开发指南
  • PostgreSQL中的SSL(2)
  • Missashe考研日记-day31
  • UNet 改进(21):可变形卷积UNet架构
  • Java 实现 SM4 加密解密
  • SpringAI实现AI应用-搭建知识库
  • GPU集群搭建
  • BOTA新六维力传感器PixONE:用12维度力矩与运动感测,驱动人形机器人力控未来
  • Compose笔记(二十)--TextField
  • (31)VTK C++开发示例 ---绘制立方体
  • 第 12 届蓝桥杯 C++ 青少组中 / 高级组省赛 2021 年 4 月 24 日真题
  • C++好用的打印日志类
  • 2025.4.24 JavaScript 基础学习笔记
  • [特殊字符] 蓝桥杯省赛全解析:含金量、获奖难度、参赛意义与发展价值全面剖析
  • 精华贴分享|【零敲碎打12】类筹码数据构建-散户行为倾向
  • react初学踏坑记录-if(number)到底过滤了什么
  • leetcode0075. 颜色分类-medium