news 2025/12/27 21:41:28

三语言实现企微外部群消息推送

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三语言实现企微外部群消息推送

QiWe开放平台提供了后台直登功能,登录成功后获取相关参数,快速Apifox在线测试,所有登录功能都是基于QiWe平台API自定义开发。


核心逻辑:企微外部群发送的两种路径

在开始写代码前,必须明确企业微信发送消息到“外部群”的两种主流方式,因为它们的 API 权限完全不同:

  1. 应用消息(最常用):通过自建应用,调用externalcontact/send_by_groupchat接口。这需要群主开启了应用权限。

  2. 群机器人(最简单):如果你只是想往自己管理的群里发通知,直接在群设置里添加“机器人”,获取webhook地址即可。

本篇重点介绍第一种:通过自建应用主动推送。


1. Python 实现:简洁直观

Python 非常适合快速验证逻辑。我们使用requests库。

import requests import json def send_external_group_msg(access_token, chat_id, content): url = f"https://qyapi.weixin.qq.com/cgi-bin/externalcontact/send_by_groupchat?access_token={access_token}" payload = { "chat_id": chat_id, "msgtype": "text", "text": { "content": content } } response = requests.post(url, data=json.dumps(payload)) return response.json() # 调用示例 # res = send_external_group_msg("YOUR_TOKEN", "EXTERNAL_CHAT_ID", "Hello from Python!")

2. Go 实现:高并发与工程化

Go 语言由于其原生支持并发,适合在大规模推送场景下使用。

package main import ( "bytes" "encoding/json" "fmt" "net/http" ) type MsgBody struct { ChatID string `json:"chat_id"` MsgType string `json:"msgtype"` Text struct { Content string `json:"content"` } `json:"text"` } func SendMsg(accessToken string, chatId string, content string) { url := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/externalcontact/send_by_groupchat?access_token=%s", accessToken) body := MsgBody{ ChatID: chatId, MsgType: "text", } body.Text.Content = content jsonData, _ := json.Marshal(body) resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData)) if err != nil { fmt.Println("发送失败:", err) return } defer resp.Body.Close() fmt.Println("发送成功") }

3. Java 实现:企业级集成

Java 开发者通常会配合RestTemplateOkHttp。这里展示基于普通 HTTP 处理的逻辑。

public class WecomService { private static final String API_URL = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/send_by_groupchat?access_token="; public void sendMessage(String accessToken, String chatId, String content) { // 构建请求体(推荐使用 Jackson 或 Gson) Map<String, Object> text = new HashMap<>(); text.put("content", content); Map<String, Object> body = new HashMap<>(); body.put("chat_id", chatId); body.put("msgtype", "text"); body.put("text", text); // 使用你熟悉的 Http 客户端发送 Post 请求 // String response = HttpUtils.post(API_URL + accessToken, JSON.toJSONString(body)); } }

关键避坑指南

1.chat_id从哪来?

外部群的chat_id不是群名,也不是随便生成的。你需要先通过externalcontact/groupchat/list接口获取客户群列表,从而拿到对应的chat_id

2. 权限问题(最重要)

  • 自建应用权限:必须在企业微信后台,将该应用的可信域名、IP 白名单配置好。

  • 配置群:只有当应用在外部群的“可使用范围”内,且该群属于企业微信的“客户群”范畴时,API 才会生效。

3. Token 缓存机制

千万不要每次发消息都去调用get_token接口!access_token有 2 小时有效期,建议存入Redis并设置过期时间,否则会触发频率限制。


总结

  • Python适合做运维脚本或简单的消息通知。

  • Go适合需要处理大量群消息推送的后端微服务。

  • Java适合集成在大型 ERP 或 CRM 系统中。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/27 17:43:28

Open-AutoGLM智普架构深度拆解:3层设计背后的工程哲学

第一章&#xff1a;Open-AutoGLM智普架构深度拆解&#xff1a;3层设计背后的工程哲学Open-AutoGLM作为智普推出的开源自动化语言模型框架&#xff0c;其核心在于清晰的三层架构设计。这一结构不仅提升了系统的可维护性与扩展性&#xff0c;更体现了“关注点分离”的工程哲学。每…

作者头像 李华
网站建设 2025/12/27 19:09:16

ollydbg下载及安装操作指南:适用于Win7/Win10

OllyDbg 实战部署指南&#xff1a;从零搭建稳定调试环境&#xff08;Win7/Win10 适用&#xff09; 你是不是也曾在搜索“OllyDbg下载”的时候&#xff0c;被一堆带广告、捆绑后门的“绿色版”网站搞得心力交瘁&#xff1f;明明只是想安个调试器&#xff0c;结果系统弹出十几个…

作者头像 李华
网站建设 2025/12/27 18:17:51

前端开发者的文本对比难题:用diff-match-patch轻松搞定

前端开发者的文本对比难题&#xff1a;用diff-match-patch轻松搞定 【免费下载链接】diff-match-patch 项目地址: https://gitcode.com/gh_mirrors/di/diff-match-patch 作为一名前端开发者&#xff0c;你是否经常遇到这样的场景&#xff1a;用户想要查看文档的修改历史…

作者头像 李华
网站建设 2025/12/26 9:41:48

手机也能跑AutoGLM?5个关键指标教你选出最佳轻量AI模型

第一章&#xff1a;智谱Open-AutoGLM那个ai模型适合手机用在移动端部署AI模型时&#xff0c;性能与资源消耗的平衡至关重要。智谱推出的Open-AutoGLM系列模型中&#xff0c;部分轻量化变体专为边缘设备优化&#xff0c;特别适合在手机等资源受限环境中运行。模型选择建议 AutoG…

作者头像 李华
网站建设 2025/12/26 9:41:38

设备兼容性还是权限问题?,深度拆解Open-AutoGLM无法触控的根源

第一章&#xff1a;设备兼容性还是权限问题&#xff1f;&#xff0c;深度拆解Open-AutoGLM无法触控的根源当用户在移动设备上运行 Open-AutoGLM 时频繁遭遇触控无响应的问题&#xff0c;核心原因往往集中在设备兼容性与系统权限两个维度。深入排查需从底层事件监听机制与前端交…

作者头像 李华
网站建设 2025/12/26 9:40:29

计算机毕设java医院设备管理系统 基于Java的医院设备信息化管理系统设计与实现 Java技术驱动的医院设备管理平台开发

计算机毕设java医院设备管理系统g5rt29 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着医疗行业的不断发展&#xff0c;医院设备管理的复杂性和重要性日益凸显。传统的设备管…

作者头像 李华