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

背景

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

一、网页授权登录

1. 配置步骤

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

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

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

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

2 网页授权登录

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

  1. 构造授权链接:
javascript 复制代码
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获取用户信息:

javascript 复制代码
// 获取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"
  1. 配置h5展示页面路径,如有工作台也需配置工作台跳转路径
1.2 域名所有权验证
  1. 下载提供的校验文件
  2. 将文件放置在域名根目录下(放前端项目public文件夹中)
  1. 点击验证按钮,系统将自动检查

2 (JS-SDK)接口调用

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

1前端项目安装企微js-sdk依赖
javascript 复制代码
npm install @wecom/jssdk
2签名校验
  1. 获取jsapi_ticket:(后端获取后返回)
javascript 复制代码
GET https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?
access_token=ACCESS_TOKEN
  1. 生成签名:(所需使用企微接口需配置jsApiList)
javascript 复制代码
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
相关推荐
优选资源分享2 小时前
PicGo v3.0.3 新版 | 开源免费图床工具
javascript·笔记·electron
星恒随风3 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
qq_284274053 小时前
数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)
笔记·学习·自动化·制造
问心无愧05133 小时前
[SUCTF 2019]EasySQL
笔记
ss2733 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
xxwl5853 小时前
区域赛分类题解
c++·笔记·学习·算法
成都蜀味缘餐饮技术培训学校6 小时前
油炸串串技术培训实战指南,核心食材选购与预处理标准
数据仓库·经验分享·笔记·课程设计·微信公众平台
摇滚侠7 小时前
《大模型应用开发实践:基于 Spring AI+DeepSeek 实现》第 11 章 大模型技术概览 阅读笔记 1
人工智能·笔记·spring
xxwl5858 小时前
区域赛算法模版第八章---贪心(Greedy)
c++·笔记·学习·算法
知产xiao_xin9 小时前
专利立法及修改
经验分享·笔记·知识产权