快捷搜索:  汽车  科技

企业微信开发的操作:企业微信JS-SDK权限验证

企业微信开发的操作:企业微信JS-SDK权限验证agentId:应用IDlet { data } = await getAgentTicket( locationUrl agentId );参数说明:timestamp,nonceStr,signature签名生成一般让后端是返回给前端调用后端请求,生成timestamp,nonceStr,signature如下:这里是一个后端请求,只需要注意参数就可以

步骤一: 引入js-sdk相关js

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

步骤二: 通过wx.config注入权限验证配置(第一次握手config注入的是企业的身份与权限)

wx.config({ beta: true // 必须这么写,否则wx.invoke调用形式的jsapi会有问题 debug: true // 开启调试模式 调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '' // 必填,企业微信的corpID timestamp: // 必填,生成签名的时间戳 nonceStr: '' // 必填,生成签名的随机串 signature: '' // 必填,签名,见 附录-JS-SDK使用权限签名算法 jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来 });

需要主要点:

appId 对应的是企业微信的corpID

timestamp,nonceStr,signature签名生成一般让后端是返回给前端

调用后端请求,生成timestamp,nonceStr,signature如下:

这里是一个后端请求,只需要注意参数就可以

let { data } = await getAgentTicket( locationUrl agentId );

参数说明:

agentId:应用ID

locationUrl:授权访问的页面URL

步骤三:通过agentConfig注入应用权限

async wxConfig (state) { try { let { data } = await getAgentTicket( locationUrl agentId ); let { timestamp nonceStr signature } = data; wx.agentConfig({ beta: true // 必须这么写,否则wx.invoke调用形式的jsapi会有问题 debug: true corpid: state.corpId // 必填,企业微信的corpid,必须与当前登录的企业一致 agentid: state.agentId // 必填,企业微信的应用id (e.g. 1000247) timestamp // 必填,生成签名的时间戳 nonceStr // 必填,生成签名的随机串 signature // 必填,签名,见附录-JS-SDK使用权限签名算法 jsApiList: [ "sendChatMessage" "getContext" "shareToExternalMoments" "getCurExternalContact" "openEnterpriseChat" "shareToExternalContact" "shareToExternalChat" "getCurExternalChat" //获取当前客户群的群ID ] //必填 success: (res) => { // console.log(res) // 回调 // alert("agentId成功:"); state.agentConfigStatus = true; } fail: (res) => { console.log("agent config 失败: " res); //alert("agentId失败:" JSON.stri.jpgy(res)); if (res.errMsg.indexOf("function not exist") > -1) { alert("版本过低请升级"); } } }); } catch (error) { console.log(error); }

调用agentConfig的注意事项

  1. agentConfig与config的签名算法完全一样,但是jsapi_ticket的获取方法不一样(后端注意)
  2. agentConfig与config的签名算法完全一样,但是jsapi_ticket的获取方法不一样(后端注意)
  3. 当前页面url中的域名必须是在该应用中设置的可信域名。
  4. 当前页面url中的域名必须是在该应用中设置的可信域名。
  5. 当前页面url中的域名必须是在该应用中设置的可信域名。

友情提醒:

开发时候我们肯定会有多套应用环境的部署(测试,生产),所以我们需要在企业后台进行多个应用的创建,然后一些可变动的参数尽量动态获取 列如,执行agentConfig(AgentId这个是根据应用走的参数),到此我们要进行前面的步骤完成一个应用,这里隐藏了一个不为认知的坑,就是多个环境调试时候,会一直遇到 getCurExternalContact:fail_nopermission,那么问题来了,步骤都对了,agenConfig也是ok,就是获取外部联系人方法 不可用,这里就去找到客户联系配置外部联系人关联的应用,如图

企业微信开发的操作:企业微信JS-SDK权限验证(1)

企业微信开发的操作:企业微信JS-SDK权限验证(2)

到这里就就可以进行正常的多套环境应用调试。

猜您喜欢: