企业微信开发sendChatMessage:no permission

一、引入官方js

我是用vue写的,所以在index.html中引入一下代码:

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

二、在App.vue中注入相关配置

 // 通过config接口注入权限验证配置
 let jsApiList = [
     'selectExternalContact',
     'openEnterpriseChat',
     'sendChatMessage',
     'getCurExternalContact',
     'getCurExternalChat',
     'getContext'
   ]
// 通过config注入企业的身份与权限
wx.config({
 beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
 appId: initPageConfig.corpid, // 必填,企业微信的corpID
 timestamp: initPageConfig.timestamp, // 必填,生成签名的时间戳
 nonceStr: initPageConfig.noncestr, // 必填,生成签名的随机串
 signature: initPageConfig.signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
 jsApiList // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});
wx.ready(function(res) {
  // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后, config是一个客户端的异步操作,
  // 所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。
  // 对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
wx.error(function(res) {
  // config信息验证失败会执行error函数,如签名过期导致验证失败,
  // 具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
  console.log('error--1', res)
  Toast.fail(res.errMsg)
});

// 通过agentConfig注入应用的身份与权限
wx.agentConfig({
  corpid: initPageConfig.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
  agentid: initPageConfig.agentid, // 必填,企业微信的应用id (e.g. 1000247)
  timestamp: initPageConfig.timestamp, // 必填,生成签名的时间戳
  nonceStr: initPageConfig.noncestr, // 必填,生成签名的随机串
  signature: initPageConfig.agentSignature,// 必填,签名,见附录-JS-SDK使用权限签名算法
  jsApiList, //必填
  success: function(res) {
    console.log('success--agentConfig', res)
  },
  fail: function(res) {
    console.log('fail--agentConfig', res)
    if (res.errMsg.indexOf('function not exist') > -1) {
      Toast.fail('版本过低请升级')
    } else {
      Toast.fail(res.errMsg)
    }
  }
});

三、在需要的页面引入api

wx.invoke('sendChatMessage', {
  msgtype: msgtype, // 消息类型,必填
  [msgtype]: data
}, function(response) {
  console.log('response---', response)
})

这里的msgtype data 我都做了数据处理,可以参照一下实例:
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐