vue调用企业微信JS-SDK实现语音识别功能

本文介绍了如何在Vue项目中利用企业微信JS-SDK实现语音识别功能。首先,需要了解官方文档并获取企业ID和应用Secret来获取token和签名。接着,前端通过axios调用后端接口获取配置信息,然后使用`wx.config`设置参数,并在`wx.ready`中调用录音和识别接口。在遇到错误时,`wx.error`会捕获并提示错误信息,便于调试。整个过程中需要注意签名验证和接口调用的顺序。
摘要由CSDN通过智能技术生成

vue调用企业微信JS-SDK实现语音识别功能

1.前期准备

使用别人的东西我们第一步就是到对应官方文档熟悉使用流程。https://open.work.weixin.qq.com/api/doc/90000/90136/90514

2.后端

根据企业微信里我的企业选项最下面的企业id和应用与小程序里的自建应用的Secret获取token,并计算签名等一系列操作,具体官方文档网上都很详细,这里就不多说;

3.前端代码撰写

第一步:安装对应的依赖并且在使用的组件里引入使用

import wx from 'weixin-js-sdk';
const _this = wx;

在这里插入图片描述
第二步:获取对应的权限的数据,这回需要和后端配合调接口

   getConfig() {
        const self=this;
        const data=location.href.split('#')[0];//需要传的地址为#前面的地址
        self.axios({
          method: 'post',
          url: '/red/web/getJsWxConfig?ticket=0&url=https://api.sixeco.com/os/',//获取签名等信息的地址
          // headers: {'Content-Type': 'application/json'},
          data:data  //向服务端提供授权url参数,并且不需要#后面的部分
        }).then((res) => {
          // console.log(res.data.data)
           let list = res.data.data;
          	_this.config({
            beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            
            appId:list.appId,// 必填,企业微信的corpID
            timestamp: list.timesTamp, // 必填,生成签名的时间戳
            nonceStr: list.nonceStr, // 必填,生成签名的随机串
            signature: list.signature, // 必填,签名
            jsApiList: [
              'startRecord', //开始录音接口
              'stopRecord',// 停止录音接口
              'translateVoice',
              'onVoiceRecordEnd'
            ] // 必填,需要使用的JS接口列表
          });
          _this.ready(() => {     
            // _this.startRecord();
            // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个
            // 客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调
            // 用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
          })
          _this.error((res) => {     
            // 这个地方的好处就是wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。
          })
        }).catch((error) => {
          // error
        })
      },
         // 开始录音
      start(e) {
        let that = this;
        that.showPopover = false
        that.videoText = '正在录音...'
        that.videoStatus = '正在切换车辆颜色…'
        if(!localStorage.rainAllowRecord || localStorage.rainAllowRecord !== 'true'){
          _this.startRecord({
            success: function () {
               	that.timer = setInterval(() => {
                that.time++
              }, 1000)
              that.vicoeEnd()
            },
            fail: function () {
              // 开始录音失败  
            },
            cancel: function () {
              // 用户拒绝授权录音
            }
          })
        }
      },
      // 60秒监听
      vicoeEnd() {
        let that = this
        _this.onVoiceRecordEnd({
          // 录音时间超过一分钟没有停止的时候会执行 complete 回调
          complete: function (res) {
            // 60秒停止录音
            that.localId = res.localId
            clearInterval(that.timer);
            this.translate()
          }
        })
      },
      // 结束录音并识别语音
      translate () {
        const that = this;
        _this.stopRecord({
          success: function (res) {
            // 翻译前停止录音
            that.localId = res.localId;
            that.getText()
          },
          fail: function (res) {
            // 调用停止失败
          }
        });
      },

一条龙下来就是这样啦,不过有几个需要注意的地方就是调用企微,确保签名认证通过了方可调用其他接口,遇到错误返回也没关系,根据错误码查找对应原因,一个个调试就可以啦
https://work.weixin.qq.com/api/doc/90001/90148/90455
哈哈,第一次接触这块,踩了不少的坑,希望对大家有帮助

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 Vue 中使用微信 JS-SDK 实现分享功能,需要完成以下步骤: 1. 获取微信公众号的 appid 和 appsecret,以及当前页面的 url。 2. 在服务器端配置好微信 JS-SDK 的权限验证,获取到 signature、timestamp 和 noncestr 等参数。 3. 在 Vue 中引入微信 JS-SDKSDK 文件,并初始化。 4. 调用微信 JS-SDK 的接口,完成分享功能。 下面是一个简单的示例代码: ```html <template> <div class="share"> <button @click="shareToWechat">分享到微信</button> </div> </template> <script> import wx from 'weixin-js-sdk' export default { data() { return { appId: '', timestamp: '', nonceStr: '', signature: '', imgUrl: '', shareUrl: '' } }, created() { // 获取微信 JS-SDK 配置参数 this.getWechatConfig() }, methods: { // 获取微信 JS-SDK 配置参数 async getWechatConfig() { const url = window.location.href.split('#')[0] const res = await this.$api.getWechatConfig({ url }) if (res.code === 0) { const data = res.data this.appId = data.appId this.timestamp = data.timestamp this.nonceStr = data.nonceStr this.signature = data.signature this.imgUrl = data.imgUrl this.shareUrl = data.shareUrl this.initWechatSDK() } }, // 初始化微信 SDK initWechatSDK() { wx.config({ debug: false, appId: this.appId, timestamp: this.timestamp, nonceStr: this.nonceStr, signature: this.signature, jsApiList: [ 'updateAppMessageShareData', 'updateTimelineShareData' ] }) wx.ready(() => { // 配置分享信息 wx.updateAppMessageShareData({ title: '分享标题', desc: '分享描述', link: this.shareUrl, imgUrl: this.imgUrl, success() { // 分享成功回调 } }) wx.updateTimelineShareData({ title: '分享标题', link: this.shareUrl, imgUrl: this.imgUrl, success() { // 分享成功回调 } }) }) }, // 分享到微信 shareToWechat() { wx.chooseWXPay({ // ... }) } } } </script> ``` 在上面的代码中,我们首先通过 `getWechatConfig` 方法获取微信 JS-SDK 的配置参数,然后在 `initWechatSDK` 方法中初始化微信 SDK,并配置分享信息。最后,在 `shareToWechat` 方法中调用微信 JS-SDK 的 `chooseWXPay` 接口,实现分享功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值