H5调用企业微信SDK,的用法,以及打开会话、分享等功能。

企业微信的JSSDK,调用及使用方法
1、首先要引入企业微信的sdk

<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js" referrerpolicy="origin"></script>
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>

2、调用企业微信的两个方法config和agentConfig
config注入的是企业的身份与权限,而agentConfig注入的是应用的身份与权限。尤其是当调用者为第三方服务商时,通过config无法准确区分出调用者是哪个第三方应用,而在部分场景下,又必须严谨区分出第三方应用的身份,此时即需要通过agentConfig来注入应用的身份信息。

wx.agentConfig({
    corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致
    agentid: '', // 必填,企业微信的应用id (e.g. 1000247)
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法
    jsApiList: ['selectExternalContact'], //必填,传入需要使用的接口名称
	success: function(res) {
        // 回调
    },
    fail: function(res) {
        if(res.errMsg.indexOf('function not exist') > -1){
            alert('版本过低请升级')
        }
    }
});

3、判断当前客户端版本是否支持指定JS接口,作用就是你调用企业微信的api都是要通过这个接口去判断是否可用,可用返回true,不可用返回false

注意:在使用为企业微信api 方法时,必须要通过wx.agentConfig()方法!!!

比如我想调用打开会话的api:openEnterpriseChat

wx.checkJsApi({
    jsApiList: ['openEnterpriseChat'], // 需要检测的JS接口列表 (就需要检测会话的api是否能用)
    success: function(res) {
        // 以键值对的形式返回,可用的api值true,不可用为false
        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    }
});```
4、下面是封装了一个方法

接收一个参数(需要调用的api)
export function initAgentConfig({ jsApiList }) {
  return new Promise((resolve, reject) => {
    const params = {
      url: window.location.href.split("#")[0],
    }
    const list = jsApiList ? ['checkAPI', ...jsApiList] : []

    // 获取config数 最好是让后端写一个接口,返回wx.agentConfig需要的参数
    getAgentSignature(params).then(res => {
      wx.agentConfig({
        corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致
        agentid: '', // 必填,企业微信的应用id (e.g. 1000247)
        timestamp: '', // 必填,生成签名的时间戳
        nonceStr: '', // 必填,生成签名的随机串
        signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法
        jsApiList: list, //必填,传入需要使用的接口名称
        success: function (res) {
          checkAPI(list)
            .then(() => {
              resolve(true)
            })
            .catch(() => {
              reject()
            });
        },
        fail: function (res) {
          if (res.errMsg.indexOf('function not exist') > -1) {
            alert('版本过低请升级')
          }
        }
      });
    });
    function checkAPI(jsApiList) {
      return new Promise((resolve, reject) => {
        wx.checkJsApi({
          jsApiList, // 需要检测的JS接口列表
          success: function (res) {
            // 以键值对的形式返回,可用的api值true,不可用为false
            // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
            resolve(true)
          },
          fail: (res) => {
            reject()
          }
        });
      })
    }
  })
}```

使用案例

    // 分享消息(卡片)
    initAgentConfig({ jsApiList: 'initAgentConfig' }).then(res => {
      if (res) {
        wx.onMenuShareAppMessage({
          title: '', // 分享标题
          desc: '', // 分享描述
          link: '', // 分享链接;在微信上分享时,该链接的域名必须与企业某个应用的可信域名一致
          imgUrl: '', // 分享图标
          enableIdTrans: 1, // 是否开启id转译,不填默认为0
          success: function () {
            // 用户确认分享后执行的回调函数
          },
          error: function (res) {
            if (res.errMsg.indexOf('no permission') > 0) {
              alert('未agentConfig')
            }
          },
          cancel: function () {
            // 用户取消分享后执行的回调函数
          }
        });
      }
    })

    // 打开会话
    initAgentConfig({ jsApiList: 'openEnterpriseChat' }).then(res => {
      if (res) {
        wx.openEnterpriseChat({
          // 注意:userIds和externalUserIds至少选填一个。内部群最多2000人;外部群最多500人;如果有微信联系人,最多40人
          userIds: '',    //参与会话的企业成员列表,格式为userid1;userid2;...,用分号隔开。
          externalUserIds: '', // 参与会话的外部联系人列表,格式为userId1;userId2;…,用分号隔开。
          groupName: '讨论组',  // 会话名称。单聊时该参数传入空字符串""即可。
          chatId: "CHATID", // 若要打开已有会话,需指定此参数。如果是新建会话,chatId必须为空串
          success: function (res) {
            var chatId = res.chatId; //返回当前群聊ID,仅当使用agentConfig注入该接口权限时才返回chatId
            // 回调
          },
          fail: function (res) {
            if (res.errMsg.indexOf('function not exist') > -1) {
              alert('版本过低请升级')
            }
          }
        });
      }
    })
    // userIds:是打开客户群
    // externalUserIds:打开个人进行聊天
    // 根据业务需求自行调整

### 关于企业微信 SDK 的官方文档与示例代码 对于希望集成企业微信功能的应用程序开发人员来说,了解如何配置以及使用企业微信 SDK 是至关重要的。以下是有关企业微信 SDK 配置和使用的详细介绍。 #### Gradle 文件配置 为了使应用程序能够访问企业微信的服务,在项目的 `build.gradle` 或者模块级别的 `build.gradle` 中添加特定的 WeWork 块来定义必要的参数是非常重要的。这些参数包括企业的唯一标识符 (`appKey`)、密钥 (`appSecret`) 和代理 ID (`agentId`) 等信息[^1]: ```groovy ShareSDK { devInfo { Wework { appKey "your_enterprise_id" appSecret "your_secret_key" agentId "your_agent_id" schema "your_schema_value" enable true } } } ``` 此段代码展示了如何通过修改 Gradle 构建脚本来设置企业微信应用的关键属性。请注意替换上述占位符为实际的企业微信平台提供的相应值。 #### 支付接口调用说明 当涉及到支付流程时,应当参照微信支付服务端API文档中的指导来进行操作。虽然这里给出的例子是为了展示 API 调用的方式,但是具体的参数应该由开发者依据自己的业务逻辑和服务环境进行调整[^2]。这通常意味着要确保所有的敏感数据都经过妥善处理,并遵循安全最佳实践。 #### 自动管理 Client_ID 如果在某些情况下未提供 `client_id` 参数,则该 SDK 可能会自动创建并保存一个唯一的客户端识别码到本地存储中以便后续请求重用[^3]。这种方式简化了初次集成过程,但也提醒开发者注意可能存在的隐私政策合规性和安全性考量。 #### 获取更多帮助和支持 除了以上提到的内容外,建议查阅最新的 [企业微信开放平台](https://work.weixin.qq.com/api/doc/90000/90135/90187) 文档获取最全面的信息和技术支持资源。那里包含了详细的安装指南、完整的 API 列表以及其他有用的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值