企业微信 使用api批量处理群消息

news/2025/10/23 23:40:21/文章来源:https://www.cnblogs.com/lld76/p/19161865
好的,我们来详细讲解如何为企业微信创建API接口,以便实现批量发送等高级功能。
创建企业微信API接入的核心是为你的企业创建一个“自建应用”,然后获取这个应用的访问凭证。整个过程可以分为以下几个步骤:

第一步:在企业微信后台创建自建应用

这个应用将作为你的程序和企业微信之间的“桥梁”。
  1. 登录企业微信管理后台
    • 访问 https://work.weixin.qq.com/
    • 用你的企业微信管理员账号扫码登录。
  2. 进入“应用管理”
    • 在左侧导航栏找到并点击「应用管理」。
  3. 创建应用
    • 点击页面上的「创建应用」按钮。
    • 上传一个应用Logo(可选),填写应用名称(例如:“批量消息推送机器人”),并选择应用可见范围(即哪些成员可以使用这个应用,通常选择你自己或相关管理员即可)。
    • 点击「创建应用」。
  4. 获取关键信息:AgentIdSecret
    • 创建成功后,你会进入应用详情页。请务必妥善保管此页面的信息!
    • AgentId(也称应用ID/Crop Id):页面直接显示。
    • Secret(应用密钥):点击“Secret”栏后的「查看」按钮,复制并保存。这个密钥只显示一次,如果丢失需要重置。

第二步:获取 Access Token

Access Token(访问令牌)是调用企业微信所有API的“通行证”。几乎所有API的调用都需要带上它。
  • API接口GET https://qyapi.weixin.qq.com/cgi-bin/gettoken
  • 请求参数
    • corpid: 你的企业ID。可以在管理后台的「我的企业」->「企业信息」中找到。
    • corpsecret: 上一步获取的应用Secret
  • 示例(使用命令行工具 curl):
    curl -G "https://qyapi.weixin.qq.com/cgi-bin/gettoken" \
    --data-urlencode "corpid=wwd08c8f123456789" \
    --data-urlencode "corpsecret=z9L7eLw9qLK2o0b1C3m5T3v5b1A2r5i6a7S8e9C0d1"
    
  • 返回值(JSON格式):
    {"errcode": 0,"errmsg": "ok","access_token": "accesstoken000001","expires_in": 7200
    }
    
    • access_token: 就是你需要的令牌,有效期为7200秒(2小时)。
    • 你需要在自己的程序中缓存这个token,并在它过期前重新获取,不要每次调用API都去获取一次。

第三步:调用发送消息的API

获取到有效的 access_token 后,你就可以调用发送应用消息的API了。这个API可以向指定成员、部门或机器人所在的群聊发送消息。
  • API接口POST https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
  • 请求体(JSON):
    这是一个最基本的文本消息示例,发送给一个“群机器人”(实际上是通过应用向配置了该应用机器人的群聊发送)。
    {"touser" : "@all","toparty" : "","totag" : "","msgtype" : "text","agentid" : 1000002, // 你的应用AgentId"text" : {"content" : "你好,这是来自API的测试消息。"},"safe": 0
    }
    

关键点:如何发送到不同的群

这里就是实现你需求的核心。你需要为每个群创建一个“群机器人”,这个机器人其实就是你刚创建的那个自建应用。
  1. 在群聊中开启消息推送
    • 在企业微信手机端或电脑端,进入你想要发送消息的群聊
    • 点击右上角的群菜单,找到「消息推送」->「新建推送」。
  2. 获取群的 Webhook 地址(推荐且更简单的方法)
    • 添加推送成功后,在创建的推送应用的设置里,你可以看到一个 Webhook 地址
    • 这个地址长得像这样:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7a5b-4c6e-8a5b-74f8c8b6f1f1
    • 这个 key 参数唯一对应了这个群
  3. 使用 Webhook 发送消息(无需Access Token):
    • 使用Webhook方式发送消息更简单,因为它不需要获取Access Token,每个群的Webhook地址就是它的唯一标识。
    • API接口POST WEBHOOK_URL
    • 请求体(JSON):
      {"msgtype": "text","text": {"content": "这是发送到特定群的消息,每个群可以不同。","mentioned_list": ["@all"]}
      }
      

最终实现流程总结

要实现“批量发送不同信息到不同群”,你的程序逻辑应该是这样的:
  1. 准备一个数据源:比如一个Excel表格或数据库,包含两列:
    • webhook_url: 每个群对应的Webhook地址。
    • message_content: 每个群对应的个性化消息内容。
  2. 编写程序脚本(可以用Python、Node.js、Java等):
    • 读取数据源。
    • 循环遍历每一行。
    • 对于每一行,构建一个HTTP POST请求,URL是 webhook_url,消息体是包含对应 message_content 的JSON数据。
    • 发送请求。
  3. 处理结果:检查API的返回信息,确保发送成功。

示例:Python 伪代码

import requests
import json# 你的数据源,例如一个字典列表
groups_info = [{"webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=group1_key","message": "这是发给群1的消息。"},{"webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=group2_key","message": "这是另一个发给群2的独特消息。"}
]for group in groups_info:data = {"msgtype": "text","text": {"content": group["message"]}}headers = {'Content-Type': 'application/json'}response = requests.post(url=group["webhook_url"],headers=headers,data=json.dumps(data))# 打印结果,可根据errcode判断是否成功(0为成功)print(f"发送到群结果: {response.text}")
通过以上步骤,你就可以完整地创建API并实现批量发送不同信息到不同群的功能了。先从在管理后台创建应用和获取Webhook开始吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

first game (1)

初步搭完场景跟人物一些tips:F5 运行 F8 退出运行 Ctrl+A 创建新子节点 Ctri+S 保存耗时≈一小时 明天继续

10月23日日记

1.今天上体育课。 2.明天学习英语 3.为什么哈希表的查询可以做到O(1)?

软件工程学习日志2025.10.23

目标:完成 MapReduce 词频统计程序的远程执行链路,支持用 java -jar 直接运行 RemoteRunner,并解决参数传递与 HDFS/SSH 连接问题。 结果:RemoteRunner 已增强为“更健壮的远程执行器”,能自动探测 HDFS、在无参数…

66ye

`import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision.datasets import CIFAR10 from torchvision.transforms import Compose, ToTensor, No…

Gin笔记一之项目建立与运行

本文首发于公众号:Hunter后端 原文链接:Gin笔记一之项目建立与运行本篇笔记开始介绍 Golang 的 web 框架 Gin 的相关内容。 本系列笔记预计通过四到五篇笔记内容介绍 Gin 框架的核心内容,然后通过一个简单的示例介绍…

【题解】P14254 分割(divide)

想了想,感觉这道题还是总结一下为好。 这个题需要涉及大量证明,也是很恶心人了。 引理一:当第 \(1\) 个点选择了深度为 \(i\),那后续所有节点的深度就只能为 \(i\)。 证明:因为选择的点的深度是不降得,所以不能选…

10.23日学习笔记

一、应用层在 TCP/IP 中的位置 最顶层,直接为用户的应用程序提供网络服务。 不关心底下几层如何传输,只关心“消息语义”与“交换规则”。 典型交互模型: 客户/服务器(C/S) P2P(对等) 混合(边缘 P2P + 索引服务…

埃氏筛及扩展质因数筛——埃拉托斯特尼筛法变种

质数筛这段代码用 “埃拉托斯特尼筛法” 找 2 到 N 之间的所有素数,逻辑很直接:先假设所有数都是素数(用vis数组标记,初始全为true); 排除 0 和 1(它们不是素数,标记为false); 从 2 开始,对每个没被排除的数…

Day2路径,相对与绝对

路径指的是查找文件时,从起点到终点经历的路程 路径也分为绝对路径与相对路径 相对路径是从当前文件出发查找目标额文件 绝对路径是从盘符出发找目标文件 Windows电脑是从盘符出发的,而Mac电脑则是从根目录出发 在…

第九届强网杯线上赛PWN_flag-market

第九届强网杯线上赛PWN_flag-market第九届强网杯线上赛PWN_flag-market 一、题目二、信息搜集 下载题目给的附件,查看文件ctf.xinetd之后,知道我们的可执行程序名为chall:这个文件在附件中的bin目录下。 通过file命…

ISFB银行木马家族演化史:从Gozi到LDR4的技术剖析

本文深入分析ISFB银行木马家族十年演化历程,详细解析其技术架构、功能模块和分支变种,包括加载器、键盘记录、Web注入、VNC远程控制等核心功能,揭示网络犯罪组织的运作模式和技术演进。第1章 — 从Gozi到ISFB:一个…

exgcd板子

void exgcd(int &x,int &y,int a,int b) {if(!b){x=1;y=0;return;}exgcd(x,y,b,a%b);int t=x;x=y;y=t-a/b*y; }

2025.10.23

今天上午算法与数据结构的早八,然后跆拳道前半节课训练,后半节课进行体测,我对这次的成绩非常满意,中午没有点外卖,去食堂买了一个饼,回宿舍休息睡觉,晚上去科技楼制作本周六竞赛的PPT,一直到10点半。

Codeforces Round 976 (Div. 2) A. Find Minimum Operations

这个问题实际上是K进制取位和: 举例:2进制 n=110100 使用几次2的x次幂可以将n置0,ans=3 10进制 n=9924 使用几次10的x次幂可以将n置0,ans=9+9+2+4 k进制也相同 ,代码如下: `#include <bits/stdc++.h> using nam…

102302142罗伟钊第一次作业

1. 作业①: **1)、核心代码与输出 ** o 要求:用requests和BeautifulSoup库方法定向爬取给定网址(http://www.shanghairanking.cn/rankings/bcur/2020 )的数据,屏幕打印爬取的大学排名信息。代码是一个大学排名数…

一个基于 .NET 开源、功能强大的分布式微服务开发框架

前言 今天大姚给大家分享一个基于 .NET 开源、功能强大的分布式微服务开发框架:Anno.Core。Anno.Core 项目介绍 Anno.Core 是一个基于 .NET 开源、功能强大的分布式微服务开发框架,致力于简化分布式、微服务系统的构…

UE4学习笔记

基本操作窗口这里可以打卡很多视口设置可以通过设置书签到自己想要的视角视口世界大纲

20251021 NOIP模拟赛

T2 题目大意; 有一棵大小为 \(n\) 的树和 \(m\) 个关键点,你要从这 \(m\) 个关键点中随机选择 \(k\) 个点,问这 \(k\) 个点两两之间最长距离的期望是多少。 \(n \le 2000, m \le 300\) 解题思路: 最暴力的做法肯定…

RocketMQ+Spring Boot的简单实现及其深入分析

Producer搭建导入RocketMQ依赖和配置RocketMQ地址及producer的group:name<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId>…

xcode程序创建文件存储位置

xcode创建的文件不在cpp文件所在位置,经过查找发现在下面这个地方/Users/用户名/Library/Developer/Xcode/DerivedData/employeesystem-dlmmqxmyqxjljjcoskekmpsbtstd/Build/Products/Debug employeesystem是项目名称…