企业微信应用开发(JS-SDK网页式开发)第二集:JS-SDK鉴权

企业微信的api方法,需要先鉴权成功才能使用;
只需要在首页鉴权一次就可以,其余页面都可以直接使用api方法;

企业微信JS-SDK:是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包。o((⊙﹏⊙))o

通过使用企业微信JS-SDK,网页开发者可借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验。

准备工作:获取corpid,corpsecret

corpid: 企业ID:获取方法☛ 查看第一集
corpsecret: 数据安全的钥匙:获取方法☛ 查看第一集

第一步:引入js文件

https://developer.work.weixin.qq.com/document/path/90514
在需要调用JS接口的页面引入如下JS文件,(支持https)

<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

第二步: 获取登录凭证 access_token

获取access_token是调用企业微信API接口的第一步,相当于创建了一个登录凭证,其它的业务API接口,都需要依赖于access_token来鉴权调用者身份。
因此开发者,在使用业务接口前,要明确access_token的颁发来源,使用正确的access_token。

let obj = {
        ticket : '',
        access_token: '', // 登录凭证
		code: '', // 随机code
		userId: '' // 用户唯一标识
    }

import axios from 'axios'
// 获取ticket 
export async function getToken(corpid, corpsecret) {
    await axios.get('https://qyapi.weixin.qq.com/cgi-bin/gettoken', {
        params: {
            corpid, // 应用id
            corpsecret, // 应用秘钥
        }
    })
    .then(async(res) => {
        obj.access_token= res.data.access_token
        console.log('登录凭证', res.data.access_token)
    })
    .catch(function (err) {
        console.log(err)
    })
}

第三步: 获取企业的jsapi_ticket

export async function getTicket( obj ) {
		await axios.get('https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket',
            {
                params: {
                    access_token: obj.access_token,
                }
            }
        )
        .then((res) => {
            obj.ticket  = res.data.ticket
        })
        .catch((err) => {
            console.log(err)
        })
   }

第四步:开始config鉴权

鉴权方式:使用说明
签名的规则算法: JS-SDK使用权限签名算法
测试生成的签名是否正确: 签名校验工具

/**
	    将上边几步获取到的参数传进来!!!
**/
let sha1 = require('js-sha1')
export async function wxAuthentication ( obj ) {
	const ticket = obj.ticket  // 很重要!!!!
	let nonceStr = 'Y7a8KkqX041bsSwT' // 随机字符串
	let timeStamp = new Date().getTime() // 时间戳
	let newTimeStamp = String(timeStamp).substr(0,10) // 10位数的时间戳
	// 当前网页的 URL(可以为本地局域网网址),不包含 # 及其后面部分
	let url = String(location.href.split('#')[0])
	let verifyStr = `jsapi_ticket=${ticket}&noncestr=${nonceStr}&timestamp=${newTimeStamp}&url=${url}`
	let signature = sha1(verifyStr)
	console.log('签名1', signature)
	wx.config({
	    beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
	    // 上线的时候记得将 debug 关掉哦!!!!!
	    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
	    appId: 'xxxxxxxxxxxxxxxxxx', // 必填,企业微信的corpID
	    timestamp: newTimeStamp, // 必填,生成签名的时间戳
	    nonceStr: nonceStr, // 必填,生成签名的随机串
	    signature: signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
	    jsApiList: ['checkJsApi', 'chooseImage', 'openEnterpriseChat', 'previewFile'] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
	});
	wx.error(function(res){
		console.log('config信息验证失败会执行error函数', res)
	    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
	});
}

问题来了::::怎么看自己有没有成功呢?
一:项目进入时,出现下边的提示
在这里插入图片描述
二:打开控制台,以对象的形式打印
在这里插入图片描述

在这里插入图片描述
如果你有了上边的提示那说明你已经鉴权成功了哦,可以开始调用api喽!!
哦 吼 ~ ~ ~ ~ ~ ~
在这里插入图片描述

欢迎收看下一集:使用JS-SDK进行预览附件、获取用户信息

<think>好的,我现在要帮用户解决关于企业微信SDK前端集成的问题。用户提到他们需要使用方法、示例和文档,所以我得先整理相关的信息。 首先,我需要回忆之前提供的引用内容。引用[2]提到了微信小程序SDK集成,其中提到client_id的生成方,这可能与企业微信SDK有类似之处。引用[3]则讨论了在企业微信聊天工具栏中集成Vue项目,并提到了调试工具的安装步骤,这部分信息应该对用户有帮助。 接下来,我应该分步骤说明企业微信SDK前端集成方法。第一步通常是安装SDK,用户可能通过npm或者script标签引入,需要给出两种方的示例代码。比如,npm安装的话,使用`npm install wecom-jssdk`,然后引入;或者直接通过script标签引入CDN链接。这样用户可以根据项目情况选择合适的方。 然后,初始化配置是关键步骤。需要配置agentId、corpId等参数,这些信息需要用户从企业微信后台获取。这里要提醒用户替换成自己的实际参数,并说明如何获取这些信息,可能需要引导他们到企业微信的管理后台查找。 接下来是流程。需要后端接口获取签名信息,这部分前端需要调用后端的API,拿到返回的签名后再进行配置。这里要强调前端不能自己生成签名,必须通过后端接口获取,以确保安全性。 调用API的部分,比如分享功能、扫描二维码等,需要给出具体的代码示例。例如,使用wx.agentConfig进行配置,然后调用wx.invoke方法执行分享。同时,要提醒用户处理成功和失败的回调,以及错误处理的重要性。 调试工具的准备也是重要的一环。引用[3]提到了企业微信的调试工具安装方法,需要指导用户下载devtools_resources.pak文件并放置到指定目录,这样才能启用调试模。用户可能在这一步遇到问题,所以需要详细说明步骤。 另外,兼容性问题和常见错误处理也是用户可能关心的。比如,iOS和Android的差异,或者签名错误、网络问题等,需要列出常见错误及解决方法,帮助用户快速排查问题。 最后,相关问题的部分需要考虑用户可能进一步的需求,比如如何获取corpId和agentId,如何处理失败,以及企业微信和小程序SDK的区别。这些问题可以作为扩展,帮助用户更全面地理解集成过程。 整个过程中,需要确保使用正确的中文表达,避免技术术语使用不当,同时保持步骤清晰,示例代码准确。另外,引用来源要正确标注,比如引用[2]和引用[3]的相关内容,确保信息的可靠性。</think>### 企业微信 SDK 前端集成方法与示例 #### 一、SDK 基础集成步骤 1. **安装或引入 SDK** - 通过 npm 安装(适用于 Vue/React 等框架项目): ```bash npm install wecom-jssdk --save ``` - 通过 script 标签引入(适用于传统 HTML 页面): ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> ``` 2. **初始化配置** 在页面中配置企业微信 SDK 参数,需从企业微信后台获取以下信息: ```javascript wx.config({ beta: true, // 启用企业微信新特性 debug: false, // 调试模(生产环境关闭) appId: '企业应用的corpId', // 替换为企业微信后台的 corpId timestamp: '生成签名的时间戳', // 由后端生成 nonceStr: '生成签名的随机串', // 由后端生成 signature: '签名', // 由后端计算 jsApiList: ['企业微信开放接口列表'], // 如 ['scanQRCode', 'getLocation'] }); ``` **注意**:签名需后端通过 `corpId` 和 `secret` 生成[^2]。 #### 二、与 API 调用示例 1. **流程** 调用后端接口获取签名信息(伪代码): ```javascript async function initWeComSDK() { const { signature, timestamp, nonceStr } = await axios.get('/api/get-signature'); wx.config({ // 填入后端返回的签名参数 }); } ``` 2. **调用 API 示例** **场景:分享到会话** ```javascript wx.ready(() => { wx.invoke('shareWechatMessage', { title: '标题', desc: '描述', link: 'https://example.com', imgUrl: 'https://example.com/logo.png', }, function(res) { if (res.err_msg === 'shareWechatMessage:ok') { console.log('分享成功'); } }); }); ``` #### 三、调试工具配置(关键步骤) 1. 下载企业微信调试工具 `devtools_resources.pak`[^3] 2. 将文件放入企业微信安装目录(如 `C:\Program Files\WXWork`) 3. 重启企业微信客户端,按 `Ctrl+Alt+Shift+D` 打开调试模 #### 四、注意事项与兼容性 1. **环境要求** - 仅在企业微信客户端内生效(外部浏览器不支持) - iOS/Android 部分 API 限需单独申请 2. **常见错误处理** - **签名无效**:检查后端生成签名的 `corpId` 和 `secret` 是否匹配 - **API 调用失败**:确认 `jsApiList` 中已声明该接口 - **网络问题**:确保页面域名已加入企业微信可信域名列表 --- §§ 相关问题 §§ 1. 如何获取企业微信应用的 `corpId` 和 `agentId`? 2. 企业微信 SDK 失败常见原因有哪些? 3. 企业微信 SDK 和小程序 SDK 在调用方上有何区别? --- [^1]: 微信支付类型说明(JSAPI/H5 支付场景) : 企业微信 SDK 自动生成 `client_id` 机制 [^3]: 企业微信调试工具安装指南
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值