企微 js-sdk的使用

public/index 引入

<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js" referrerpolicy="origin"></script>
import { getAuthorizationStatus, wechatAgentInfo } from '@/api/index'
import { mapState } from 'vuex'

export default {
  data() {
    return {
      configStatus: this.$store.state.configStatus || false,
      authorizationStatus: this.$store.state.authorizationStatus || '-1'
    }
  },
  computed: {
    ...mapState({ userInfo: (state) => state.user.userInfo })
  },
  watch: {
    userInfo: {
      handler(val) {
        console.log(val)
        if (val.config && val.config.accountId) {
          this.getAuthorizationStatus()
        }
      },
      deep: true,
      immediate: true
    }
  },
  methods: {
    // 获取应用是否授权通讯录
    getAuthorizationStatus() {
      if (this.authorizationStatus == '2') {
        this.getWechatAgentInfo()
      } else if (this.authorizationStatus == '-1') {
       // 接口返回鉴权信息
        getAuthorizationStatus().then((res) => {
          this.$store.commit('SET_AUTH_STATUS', res.data)
          this.authorizationStatus = res.data
          if (res.data == '2') {
            this.getWechatAgentInfo()
          }
        })
      }
    },
    // 获取第三方应用鉴权参数
    getWechatAgentInfo() {
      const _url = window.location.href.split('#')
      wechatAgentInfo({ url: _url[0], accountId: this.userInfo.config.accountId }).then((res) => {
        if (res.code === '0') {
          this.agentConfig(res.data)
        } else if (res.code === '501') {
          this.$store.commit('SET_AUTH_STATUS', '3')
          this.authorizationStatus = '3'
        }
      })
    },
    // 第三方应用鉴权
    agentConfig(res) {
      const wx = window.wx
      const that = this
      wx.agentConfig({
        corpid: res.cropId, // 必填,企业微信的corpid,必须与当前登录的企业一致
        agentid: parseInt(res.agentId), // 必填,企业微信的应用id (e.g. 1000247)
        timestamp: res.timestamp, // 必填,生成签名的时间戳
        nonceStr: res.nonceStr, // 必填,生成签名的随机串
        signature: res.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
        jsApiList: ['selectExternalContact'], // 必填,传入需要使用的接口名称
        success: function (result) {
          console.log(result, '请求微信成功') // 回调
          that.configStatus = true
          that.$store.commit('SET_CONFIG_STATUS', true)
        },
        fail: function (res) {
          console.log('fail')
          console.log(res)
          if (res.errMsg.indexOf('function not exist') > -1) {
          }
        }
      })
    }
  }
}

然后在 layout 中 调用

import setAgentConfig from '@/mixins/setAgentConfig'
 mixins: [setAgentConfig],
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值