企业微信自建应用-获取客户群id

概述

最后更新:2018/10/17

企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包。

通过使用企业微信JS-SDK,网页开发者可借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验。

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


企微官网:

https://work.weixin.qq.com/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

const sha1 = require('node-sha1')



const toolsQiWeToken = async (req, res) => {
  axios({
    url: 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwd70e******70290f&corpsecret=JrPSfOHlNzPiFvRtn2******UuuHwAxyUdUDu8',
  }).then((resData) => {
    console.log(resData.data)
    let tokenData = resData.data
    let access_token = resData.data.access_token

    axios({
      url: `https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=${access_token}&debug=1`,
    }).then((resData) => {
      console.log(resData.data)
      let ticket = resData.data.ticket
      let noncestr = uuidv4()
      let timestamp = Date.now()
      let url = 'http://yuying-api.xutongbao.top/index1.html'
      console.log('ticket', ticket)
      console.log('noncestr', noncestr)

      let string1 = `jsapi_ticket=${ticket}&noncestr=${noncestr}&timestamp=${timestamp}&url=${url}`
      console.log(string1)
      let signature = sha1(string1)
      let corpData = {
        tokenData,
        ticket: resData.data,
        string1,
        ticket,
        noncestr,
        timestamp,
        url,
        signature,
      }

      axios({
        url: `https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=${access_token}&type=agent_config&debug=1`,
      }).then((resData) => {
        console.log('agent', resData.data)

        let ticket = resData.data.ticket
        let noncestr = uuidv4()
        let timestamp = Date.now()
        let url = 'http://yuying-api.xutongbao.top/index1.html'
        console.log('ticket', ticket)
        console.log('noncestr', noncestr)

        let string1 = `jsapi_ticket=${ticket}&noncestr=${noncestr}&timestamp=${timestamp}&url=${url}`
        console.log(string1)
        let signature = sha1(string1)
        let agentData = {
          string1,
          ticket,
          noncestr,
          timestamp,
          url,
          signature,
        }
        res.send({
          code: 200,
          data: {
            corpData,
            agentData,
          },
          message: '成功',
        })
      })
    })
  })
}

 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
    <script
      src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"
      referrerpolicy="origin"
      ref
    ></script>
    <script src="lib/axios.min.js"></script>
  </head>
  <body>
    666
    <script src="lib/vconsole.min.js"></script>
    <script>
      // VConsole will be exported to `window.VConsole` by default.
      var vConsole = new window.VConsole()
    </script>
    <script>
      axios({
        url: `http://yuying-api.xutongbao.top/api/light/tools/qiWeToken`,
        method: 'post',
      }).then((res) => {
        console.log(res)

        const agentFun = () => {
          const { timestamp, noncestr, signature } = res.data.data.agentData

          wx.agentConfig({
            corpid: 'wwd70ee******70290f', // 必填,企业微信的corpid,必须与当前登录的企业一致
            agentid: '1000004', // 必填,企业微信的应用id (e.g. 1000247)
            timestamp, // 必填,生成签名的时间戳
            nonceStr: noncestr, // 必填,生成签名的随机串
            signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
            jsApiList: ['getCurExternalChat'], //必填,传入需要使用的接口名称
            success: function (res) {
              console.log(666, res)

              wx.invoke('getCurExternalChat', {}, function (res) {
                console.log(777, res)
                if (res.err_msg == 'getCurExternalChat:ok') {
                  let chatId = res.chatId //返回当前外部群的群聊ID
                } else {
                  //错误处理
                }
              })
              // 回调
            },
            fail: function (res) {
              console.log(res)
              if (res.errMsg.indexOf('function not exist') > -1) {
                alert('版本过低请升级')
              }
            },
          })

          console.log(timestamp, noncestr, signature)
        }

        agentFun()
      })
    </script>
  </body>
</html>

 

 

错误码检查工具:

https://open.work.weixin.qq.com/devtool/query?e=81013

 

 

 

### 企业微信客户群自动回复消息功能设置 #### 背景介绍 企业微信提供了丰富的API接口以及事件通知机制,允许开发者通过技术手段实现自动化操作。对于客户群中的自动回复消息功能,可以通过以下方式实现: 1. **接收并处理事件通知** 当有新成员加入客户群或者发生其他特定事件时,企业微信会将这些事件以加密形式推送到企业的服务器。具体来说,企业微信会对消息内容做AES加密,并以XML格式POST到企业应用的URL上[^1]。 2. **解密与验证数据** 接收到的消息需要先进行解密和签名验证,确保消息的真实性和安全性。完成后可以根据业务逻辑判断是否触发自动回复流程。 3. **主动发送消息至客户群** 使用企业微信提供的API接口,可以向指定的客户群发送消息。例如,`touser`参数用于指定接收者的OpenID列表[^2]。如果目标是整个客户群,则需获取对应的ID或其他标识符。 4. **利用机器人简化开发** 如果不想完全依赖自定义开发,也可以考虑使用企业微信机器人。只需按照官方文档配置好Webhook URL,然后通过HTTP POST请求向此地址提交JSON格式的数据即可完成消息发送[^3]。不过需要注意的是,务必妥善保管Webhook地址以防泄露风险。 以下是基于Python的一个简单示例代码片段展示如何构建基本框架来实现上述过程的一部分: ```python import requests import json def send_message_to_group(webhook_url, content): headers = {'Content-Type': 'application/json'} payload = { "msgtype": "text", "text": {"content": content} } response = requests.post(url=webhook_url, data=json.dumps(payload), headers=headers) return response.json() if __name__ == "__main__": webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your_key_here" message_content = "欢迎来到我们的客户服务!如有任何疑问,请随时提问。" result = send_message_to_group(webhook, message_content) print(result) ``` 以上脚本实现了通过已知的Webhook链接向关联好的企业微信组广播一条纯文本性质的通知语句。 #### 注意事项 - 确保所有涉及敏感信息的操作都遵循最佳安全实践。 - 测试阶段建议在一个独立环境中运行程序以免影响正式运营环境下的用户体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

徐同保

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

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

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

打赏作者

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

抵扣说明:

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

余额充值