企业微信 API:主动发送外部群消息实战指南
在企业微信的开发场景中向“外部群”发送消息与向“内部群”发送消息逻辑略有不同。通常有两种主流方式群机器人Webhook最简单但需要群主开启机器人。应用消息App Chat通过自建应用调用appchat接口。注意发送外部群消息的前提是该群必须由企业成员创建且应用需要有对应的客户联系权限。1. 前置准备在编码之前你需要获取以下信息CorpID企业标识。AppSecret自建应用的密钥。ChatID外部群的群聊 ID通过“获取客户群列表”接口获取。2. Python 实现简洁高效Python 适合快速原型开发和自动化脚本。import requests import json def get_access_token(corp_id, secret): url fhttps://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid{corp_id}corpsecret{secret} res requests.get(url).json() return res.get(access_token) def send_external_group_msg(token, chat_id, content): url fhttps://qyapi.weixin.qq.com/cgi-bin/appchat/send?access_token{token} data { chatid: chat_id, msgtype: text, text: {content: content}, safe: 0 } res requests.post(url, datajson.dumps(data)) return res.json() # 调用示例 token get_access_token(YOUR_CORPID, YOUR_SECRET) print(send_external_group_msg(token, EXTERNAL_CHAT_ID, Hello from Python!))3. Go 实现并发与性能Go 语言适合处理高频的推送任务。package main import ( bytes encoding/json fmt net/http ) type Msg struct { ChatID string json:chatid MsgType string json:msgtype Text struct { Content string json:content } json:text } func sendMessage(accessToken string, chatID string, text string) { url : https://qyapi.weixin.qq.com/cgi-bin/appchat/send?access_token accessToken msg : Msg{ChatID: chatID, MsgType: text} msg.Text.Content text payload, _ : json.Marshal(msg) resp, err : http.Post(url, application/json, bytes.NewBuffer(payload)) if err ! nil { fmt.Println(Error:, err) return } defer resp.Body.Close() fmt.Println(Message sent!) } func main() { // 实际开发中建议将 token 缓存避免频繁请求 sendMessage(YOUR_ACCESS_TOKEN, EXTERNAL_CHAT_ID, Hello from Go!) }4. Java 实现企业级规范Java 方案通常配合OkHttp或RestTemplate使用。import com.google.gson.JsonObject; import okhttp3.*; public class QyWechatAppChat { private static final OkHttpClient client new OkHttpClient(); public static void sendMsg(String accessToken, String chatId, String content) throws Exception { String url https://qyapi.weixin.qq.com/cgi-bin/appchat/send?access_token accessToken; JsonObject text new JsonObject(); text.addProperty(content, content); JsonObject body new JsonObject(); body.addProperty(chatid, chatId); body.addProperty(msgtype, text); body.add(text, text); RequestBody requestBody RequestBody.create( body.toString(), MediaType.parse(application/json; charsetutf-8)); Request request new Request.Builder().url(url).post(requestBody).build(); try (Response response client.newCall(request).execute()) { System.out.println(response.body().string()); } } } 技术要点总结Token 缓存机制access_token有效期为 2 小时千万不要每发一条消息就请求一次 Token会导致接口触发频率限制。建议存储在 Redis 中并设置过期时间。ChatID 获取外部群的chatid与内部群不同通常需要先调用externalcontact/groupchat/list接口获取列表再根据需求匹配目标群。消息类型限制主动发送外部群消息支持text、image、voice、video、file及textcard。注意textcard文本卡片在外部群展示效果最好最常用于业务提醒。安全合规企业微信对外部群消息推送有较严格的合规审计。严禁通过该接口发送任何垃圾营销信息否则会导致自建应用甚至整个企业主体被封禁。QiWe开放平台提供了后台直登功能登录成功后获取相关参数快速Apifox在线测试所有登录功能都是基于QiWe平台API自定义开发。

相关新闻

REPENTOGON完整指南:解锁以撒结合终极模组开发体验

REPENTOGON完整指南:解锁以撒结合终极模组开发体验

REPENTOGON完整指南:解锁以撒结合终极模组开发体验 【免费下载链接】REPENTOGON Script extender for The Binding of Isaac: Repentance 项目地址: https://gitcode.com/gh_mirrors/re/REPENTOGON 想要彻底改变《以撒的结合:悔改》的游戏体验吗&…

2026/11/2 9:32:45 阅读更多 →
如何用免费离线OCR工具Umi-OCR实现高效文字识别:完整配置指南

如何用免费离线OCR工具Umi-OCR实现高效文字识别:完整配置指南

如何用免费离线OCR工具Umi-OCR实现高效文字识别:完整配置指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置…

2026/10/30 13:22:40 阅读更多 →
Java JSON转换实战:安全选型、三大场景解析与性能优化

Java JSON转换实战:安全选型、三大场景解析与性能优化

1. JSON转换:从新手到老手的必经之路 如果你写过Java,那你一定处理过JSON。这玩意儿就像程序员世界里的“普通话”,前后端沟通、系统间数据交换、配置文件存储,几乎无处不在。但就是这个看似简单的数据格式,在实际操作…

2026/10/22 16:46:56 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/2 0:25:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/1 10:36:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/1 10:36:51 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/2 1:16:51 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/1 10:35:11 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/1 9:35:41 阅读更多 →

日新闻

周新闻

月新闻