今天在开发企业微信大模型机器人时,遇到了一个比较关键的问题:如何获取一个外网域名,用于企业微信的回调请求。

企业微信的回调接口只支持带域名的 HTTP 地址,这意味着你的服务必须部署在一台有公网域名访问权限的服务器上,才能接收到企业微信推送的消息和事件通知。

但实际开发中,我们经常是在本地机器启动HTTP服务进行调试,这时就需要解决本地服务如何被企业微信访问的问题。


内网穿透工具 — ngrok的使用和限制

在搜索方案时,我发现了非常流行的内网穿透工具——ngrok。它可以将你本地的 HTTP 服务通过一个公网域名暴露出去,方便企业微信服务器直接访问你的本地服务。

但是免费版 ngrok 有一个小缺陷:

  • 第一次请求时,ngrok 会先返回一个提示页面,要求用户点击“继续访问”按钮。
  • 只有点击继续后,ngrok才会将请求转发给本地服务。

而企业微信的消息推送API是不会自动点击这个按钮的,导致回调请求无法到达你的本地服务,调试非常不便。


发现更好的内网穿透服务 — serveo.net

幸运的是,我找到了另一个内网穿透服务 —— serveo.net,它没有提示页面,能直接将请求转发到本地服务,完美解决了上述问题。

使用命令非常简单:

ssh -R 80:localhost:36060 serveo.net

这样,外网访问 http://xxxxx.serveo.net 就会被转发到本地36060端口上的服务。

官网地址:serveo.net

在这里插入图片描述


我的开源项目依赖serveo.net免费域名

我的企业微信机器人开源项目https://github.com/yincongcyincong/MuseBot 就依赖 serveo.net 的免费域名来进行开发和调试。

这个机器人不仅支持企业微信,也兼容飞书、钉钉、Telegram、Discord、Slack 等多个聊天平台,极大方便了多渠道智能机器人开发。


✨ 企业微信机器人项目简介

本项目是一个跨平台聊天机器人,支持企业微信的私聊和群聊场景。
机器人集成了强大的大模型能力,支持智能对话、自动回复、信息推送及协作功能。


🚀 启动企业微信机器人

请使用如下命令启动:

./MuseBot-darwin-amd64 \
  -deepseek_token=sk-xxx \
  -gemini_token=xxx \
  -openai_token=xxx \
  -vol_token=xxx \
  -com_wechat_token=xxx \
  -com_wechat_encoding_aes_key=xxx \
  -com_wechat_corp_id=xxx \
  -com_wechat_secret=xxx \
  -com_wechat_agent_id=xxx

💬 企业微信机器人使用说明

创建企业微信机器人步骤

  1. 登录企业微信管理后台:
    https://work.weixin.qq.com/wework
    https://work.weixin.qq.com/wework_admin/
  2. 新建应用,获取 AgentIdSecret,并配置 TokenEncodingAESKey
    在这里插入图片描述

3. 设置回调URL,填写你服务器的域名和路径,用于接收企业微信的消息和事件回调。
在这里插入图片描述

5. 配置企业可信IP,确保你本地能请求企业微信的API发送消息。

在这里插入图片描述


机器人私聊演示

在企业微信的私聊窗口向机器人发送消息,机器人会自动识别并回复:

在这里插入图片描述


如果你也在做需要外网域名的开发,可以参考我的项目和分享的内网穿透方案,快速搭建和调试机器人服务。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐