企微API开发:轻松获取外部群chat_id全攻略

QiWe开放平台 · 个人名片

                API驱动企微自动化,让开发更高效

        核心能力:API 驱动企微自动化,提升开发效率

        官方站点:https://www.qiweapi.com

        对接通道:进入官方站点联系客服

        团队定位:企微生态深度服务,专注 API+RPA 融合技术方案

        核心理念:合规赋能,以技术简化企微开发全流程


01. 为什么你拿不到 chat_id?

在企业微信的权限体系中,外部群(包含外部客户的群)的 ID 获取比内部群严格得多。很多同学尝试用内部群的接口去拉取外部群列表,结果往往是返回空数据或报错。

核心逻辑: 外部群属于“客户联系”范畴,必须通过 externalcontact 相关的接口获取。

02. 获取流程分解

第一步:配置权限(最关键)
  1. 进入企微管理后台 -> 客户联系 -> API

  2. 在“可调用接口的应用”中,添加你正在开发的自建应用。

  3. 确保该应用拥有查看“客户群”的权限范围。

第二步:获取客户群列表

使用 /externalcontact/groupchat/list 接口。这是一个分页接口,建议初次拉取时将 limit 设大一些。

Python 示例:

def get_group_list(access_token):
    url = f"https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/list?access_token={access_token}"
    params = {
        "status_filter": 0, # 0-所有, 1-已解散
        "limit": 100
    }
    res = requests.post(url, json=params)
    return res.json().get("group_list", []) # 这里拿到的是 chat_id 列表
第三步:获取群详情(验证群名与成员)

拿到 chat_id 后,调用 /externalcontact/groupchat/get 获取群名称,确保你没发错群。

03. 核心代码实现(Go/Java)

Go 实现(结构化处理):

func GetChatDetail(token string, chatId string) {
    apiUrl := "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/get?access_token=" + token
    reqBody := map[string]string{"chat_id": chatId}
    
    jsonData, _ := json.Marshal(reqBody)
    resp, _ := http.Post(apiUrl, "application/json", bytes.NewBuffer(jsonData))
    
    // 解析返回的 group_chat 字段,获取群名和群主信息
}

Java 实现(通用配置):

public void fetchGroupDetail(String accessToken, String chatId) {
    String url = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/get?access_token=" + accessToken;
    JSONObject params = new JSONObject();
    params.put("chat_id", chatId);
    
    // 建议使用成熟的 Http 客户端库,注意处理 JSONObject 返回
    String response = HttpUtil.post(url, params.toJSONString());
    System.out.println("群详情数据:" + response);
}

04. 避坑总结(干货)

  1. 应用限制: 代开发应用和自建应用获取到的 chat_id 可能不互通,切换应用时需重新拉取。

  2. 群主权限: 自建应用只能获取到其可见范围内配置的成员所创建/加入的外部群。如果群主不在应用的可见范围内,该群对 API 是“不可见”的。

  3. 敏感信息: 外部群成员的微信 openid 是加密的,API 返回的是 userid(企微成员)或 external_userid(外部联系人)。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值