好的,我们来详细讲解如何为企业微信创建API接口,以便实现批量发送等高级功能。
创建企业微信API接入的核心是为你的企业创建一个“自建应用”,然后获取这个应用的访问凭证。整个过程可以分为以下几个步骤:
第一步:在企业微信后台创建自建应用
这个应用将作为你的程序和企业微信之间的“桥梁”。
-
登录企业微信管理后台:
-
访问 https://work.weixin.qq.com/
-
用你的企业微信管理员账号扫码登录。
-
-
进入“应用管理”:
-
在左侧导航栏找到并点击「应用管理」。
-
-
创建应用:
-
点击页面上的「创建应用」按钮。
-
上传一个应用Logo(可选),填写应用名称(例如:“批量消息推送机器人”),并选择应用可见范围(即哪些成员可以使用这个应用,通常选择你自己或相关管理员即可)。
-
点击「创建应用」。
-
-
获取关键信息:
AgentId
和Secret
:-
创建成功后,你会进入应用详情页。请务必妥善保管此页面的信息!
-
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 }
关键点:如何发送到不同的群?
这里就是实现你需求的核心。你需要为每个群创建一个“群机器人”,这个机器人其实就是你刚创建的那个自建应用。
-
在群聊中开启消息推送:
-
在企业微信手机端或电脑端,进入你想要发送消息的群聊。
-
点击右上角的群菜单,找到「消息推送」->「新建推送」。
-
-
获取群的 Webhook 地址(推荐且更简单的方法):
-
添加推送成功后,在创建的推送应用的设置里,你可以看到一个 Webhook 地址。
-
这个地址长得像这样:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7a5b-4c6e-8a5b-74f8c8b6f1f1
-
这个
key
参数唯一对应了这个群。
-
-
使用 Webhook 发送消息(无需Access Token):
-
使用Webhook方式发送消息更简单,因为它不需要获取Access Token,每个群的Webhook地址就是它的唯一标识。
-
API接口:
POST WEBHOOK_URL
-
请求体(JSON):
{"msgtype": "text","text": {"content": "这是发送到特定群的消息,每个群可以不同。","mentioned_list": ["@all"]} }
-
最终实现流程总结
要实现“批量发送不同信息到不同群”,你的程序逻辑应该是这样的:
-
准备一个数据源:比如一个Excel表格或数据库,包含两列:
-
webhook_url
: 每个群对应的Webhook地址。 -
message_content
: 每个群对应的个性化消息内容。
-
-
编写程序脚本(可以用Python、Node.js、Java等):
-
读取数据源。
-
循环遍历每一行。
-
对于每一行,构建一个HTTP POST请求,URL是
webhook_url
,消息体是包含对应message_content
的JSON数据。 -
发送请求。
-
-
处理结果:检查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开始吧!