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

企业微信内部网页开发流程笔记

背景

基于ai实现企微侧边栏和工作台快速问答小助,需要h5开发,因为流程不清楚摸索半天,所以记录一下

一、网页授权登录

1. 配置步骤

1.1 设置可信域名
  1. 登录企业微信管理后台

  2. 进入"应用管理" > 选择开发的具体应用 > “网页授权及JS-SDK”

  3. 配置h5展示页面路径,如有工作台也需配置工作台跳转路径

2.2 域名所有权验证
  1. 下载提供的校验文件
  2. 将文件放置在域名根目录下(放前端项目public文件夹中)
  • 例如:https://yourdomain.com/wwverify.txt
  1. 点击验证按钮,系统将自动检查

2 网页授权登录

企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。

  1. 构造授权链接:
https://open.weixin.qq.com/connect/oauth2/authorize?
appid=CORPID&
redirect_uri=ENCODE_URL&
response_type=code&
scope=snsapi_base|snsapi_privateinfo&
state=STATE&
agentid=AGENTID#wechat_redirect
  1. 用户授权后,跳转到redirect_uri并带上code参数,此uri一般为h5当前页面

  2. 后端通过code获取用户信息:

// 获取access_token
GET https://qyapi.weixin.qq.com/cgi-bin/gettoken?
corpid=ID&corpsecret=SECRET// 获取用户信息
GET https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?
access_token=ACCESS_TOKEN&code=CODE

二、JS-SDK接口调用

1. 配置步骤

1.1 设置可信域名
  1. 登录企业微信管理后台
  2. 进入"应用管理" > 选择开发的具体应用 > “网页授权及JS-SDK”
  • 只需填写根域名,如yourdomain.com
  • 所有子域名自动获得授权能力
  1. 配置h5展示页面路径,如有工作台也需配置工作台跳转路径
1.2 域名所有权验证
  1. 下载提供的校验文件
  2. 将文件放置在域名根目录下(放前端项目public文件夹中)
  • 例如:https://yourdomain.com/wwverify.txt
  1. 点击验证按钮,系统将自动检查
    在这里插入图片描述

2 (JS-SDK)接口调用

企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包

1前端项目安装企微js-sdk依赖
npm install @wecom/jssdk
2签名校验
  1. 获取jsapi_ticket:(后端获取后返回)
GET https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?
access_token=ACCESS_TOKEN
  1. 生成签名:(所需使用企微接口需配置jsApiList)
const loadSignature = async (url: string) => {if (!signaturePromise) {signaturePromise = 服务端鉴权接口({ url }) // 只在第一次调用时执行}return signaturePromise}ww.register({corpId,agentId,jsApiList: ['getCurExternalContact'],getAgentConfigSignature: async (url) => {console.log('getAgentConfigSignature :>> ', url)const res = await loadSignature(url)const { agentSignature, nonceStr, timestamp } = res?.data ?? {}return { timestamp, nonceStr, signature: agentSignature }},onConfigSuccess: (res) => {console.log('onConfigSuccess :>> ', res)},onConfigFail: (res) => {console.log('onConfigFail :>> ', res)},onConfigComplete: (res) => {console.log('onConfigComplete', res)},onAgentConfigSuccess: (res) => {console.log('onAgentConfigSuccess :>> ', res)resolve(true)},onAgentConfigFail: (res) => {console.log('onAgentConfigFail :>> ', res)reject()},onAgentConfigComplete: (res) => {console.log('onAgentConfigComplete', res)},})

3. 本地调试获取JSAPI_TICKET

本地可以使用npx wwutil ticket CORPID SECRET命令获取jsapi_ticket

3 部分接口权限特殊配置

  1. 获取用户信息接口权限配置,需配置客户联系人
    在这里插入图片描述

三、 调试工具

  • 企业微信提供的接口调试工具
  • 使用开发者工具查看网络请求项目中添加console
http://www.xdnf.cn/news/9229.html

相关文章:

  • [Java恶补day8] 3. 无重复字符的最长子串
  • 一起学数据结构和算法(三)| 字符串(线性结构)
  • 零基础远程连接课题组Linux服务器,安装anaconda,配置python环境(换源),在服务器上运行python代码【1/3 适合小白,步骤详细!!!】
  • 在 Vue 2中使用 dhtmlxGantt 7.1.13组件,并解决使用时遇到的问题汇总.“dhtmlx-gantt“: “^7.1.13“,
  • Linux中Java开发、部署和运维常用命令
  • uni-app学习笔记十五-vue3页面生命周期(一)
  • unity实现wasd键控制汽车漫游
  • 国产三维CAD皇冠CAD(CrownCAD)建模教程:汽车电池
  • 洛谷 P3372 【模板】线段树 1
  • android 输入系统
  • 不同电脑同一个网络ip地址一样吗
  • 打卡第38天
  • 数据透视:水安 B 证如何影响水利企业的生存指数?
  • Java爬虫,获取未来40天预测气象并写入Excel
  • 制作一款打飞机游戏58:子弹模式组合
  • 低空经济数据湖架构设计方案
  • 在springboot,禁止查询数据库种的某字段
  • 【linux篇】动静态库和自动化构建的“神之一手”:make、Makefile
  • AtCoder 第407场初级竞赛 A~E题解
  • java helloWord java程序运行机制 用idea创建一个java项目 标识符 关键字 数据类型 字节
  • 服务器中分布式存储数据技术都包含哪些内容?
  • maven 最短路径依赖优先
  • Qt QPaintEvent绘图事件painter使用指南
  • Qt函数setText设置中文导致乱码/程序崩溃/报错:常量中有换行符
  • html css js网页制作成品——HTML+CSS+js醇香咖啡屋网页设计(5页)附源码
  • 大模型应用开发第三讲:大模型是Agent的“大脑”,提供通用推理能力(如GPT-4、Claude 3)
  • inviteflood:基于 UDP 的 SIP/SDP 洪水攻击工具!全参数详细教程!Kali Linux教程!
  • 从零实现本地语音识别(FunASR)
  • 在AIX环境下修改oracle 11g rac的IP地址
  • 使用requestAnimationFrame编写动画效果或者处理大量数据