当前位置: 首页 > 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.dtcms.com/a/165094.html

相关文章:

  • SVTAV1源码-set_all_ref_frame_type
  • Mysql之数据库基础
  • 用TCP实现服务器与客户端的交互
  • python爬虫基础:requests库详解与案例
  • Microsoft Entra ID 免费版管理云资源详解
  • Vue:el-table-tree懒加载数据
  • Kaggle比赛入门攻略(以 Titanic 为例)
  • 【KWDB 创作者计划】_深度解析KWDB存储引擎
  • C++负载均衡远程调用学习之基础TCP服务
  • 如何做表征对齐?
  • 艺术与科技的双向奔赴——高一鑫荣获加州联合表彰
  • C# 类的基本概念(从类的内部访问成员和从类的外部访问成员)
  • PXI总线开关卡80个交叉点组成的中密度 PXI矩阵开关模块
  • WPF框架中常用算法
  • BT137-ASEMI机器人功率器件专用BT137
  • 【论文阅读】APMSA: Adversarial Perturbation Against Model Stealing Attacks
  • LeetCode209_长度最小的子数组
  • MCP 自定义python实现server服务,支持离线调用和远程接口访问形式
  • Flink之DataStream
  • ActiveMQ 可靠性保障:消息确认与重发机制(一)
  • ActiveMQ 可靠性保障:消息确认与重发机制(二)
  • ag-grid-react 列表导出csv列表getDataAsCsv (自定义导出列表配置)自定义新增,修改导出内容
  • 使用模块中的`XPath`语法提取非结构化数据
  • 单体项目到微服务的架构演变与K8s发展是否会代替微服务
  • 【SpringBoot】基于mybatisPlus的博客系统
  • windows系统 压力测试技术
  • 简易APP更新功能
  • 海思正式公开了星闪BS21E的SDK
  • 【LLM】MOE混合专家大模型综述(重要模块原理)
  • 20250430在ubuntu14.04.6系统上完成编译NanoPi NEO开发板的FriendlyCore系统【严重不推荐,属于没苦硬吃】