禅道外部消息提示_禅道消息通知增加企业微信机器人WebHook支持

本文介绍了如何在禅道中添加企业微信机器人WebHook支持,以实现禅道消息通知到企业微信。通过修改禅道源码,增加`getWorkWxData`方法并更新界面配置,最后配置企业微信机器人,成功实现在企业微信群接收禅道的通知。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间

准备

首先我们要安装一个禅道,版本不限,我是从最新版进行修改的。防止修改出现问题,在修改前备份以下目录:

F:\xampp\zentao\module\webhook

养成修改前备份的好习惯:)

动手

本次修改只需修改webhook目录中的文件即可,我们先在model.php中增加对企业微信的支持,添加如下代码:

/**

* Get hook data for WorkWx.

*

* @param string $title

* @param string $text

* @param string $mobile

* @access public

* @return object

*/

public function getWorkWxData($title, $text, $mobile, $user, $viewLink)

{

if($user) $text .= "\n>@{$user}";

$data = new stdclass();

$data->msgtype = 'markdown';

$markdown = new stdclass();

$markdown->content = "{$text}";

if($mobile)

{

$markdown->mentioned_mobile_list = array($mobile);

<think>好的,用户的问题是如何通过API或第三方工具将飞书的消息推送到企业微信。首先,我需要考虑用户的需求场景,可能他们公司同时使用飞书和企业微信,需要实现两个平台之间的消息同步,比如通知、任务提醒等。用户可能没有开发经验,或者需要一种快速实现的方法,所以需要分情况讨论。 根据提供的引用内容,企业微信的API调用流程大致是获取access_token,然后调用消息推送接口。比如引用[2]提到获取accesstoken是关键步骤,引用[4]展示了调用推送接口的返回结果。所以,首先需要确认用户是否有开发能力,如果有的话,可以采用直接调用API的方式,否则可能需要第三方工具。 直接使用API的话,步骤应该包括:1. 在企业微信创建应用,获取AgentID和Secret;2. 飞书端设置消息监听,比如通过飞书的开放平台配置事件回调,当有消息时触发;3. 在飞书的回调服务中,调用企业微信的API发送消息。这需要一定的后端开发能力,比如搭建一个中间服务器来处理消息的转发。 第三方工具方面,引用[3]提到使用金数据等工具连接企业微信机器人,可能需要配置API Key和Secret。用户可能希望找到无需编码的方法,比如使用Zapier、集简云这样的集成平台,连接飞书和企业微信,设置触发动作和响应动作。但需要确认这些工具是否支持飞书到企业微信的直接连接。 另外,需要注意企业微信的API权限和安全性,比如IP白名单、可信域名等,引用[1]和[2]提到需要配置服务域名和备案主体一致。这可能是一个容易出错的地方,需要提醒用户。 还需要考虑消息格式的转换,飞书和企业微信消息结构可能不同,需要处理字段映射。例如,飞书的卡片消息可能需要转换成企业微信支持的markdown或文本格式。 总结下来,解决方案分两种:自主开发API对接和使用第三方工具。需要详细说明两种方法的步骤,并指出可能的难点,比如获取access_token、处理回调验证、消息格式转换等。同时,要引用提供的参考资料,特别是企业微信的API调用流程和第三方工具配置分。</think>### 从飞书向企业微信推送消息的集成方案 #### 方案一:通过API直接对接(需开发能力) 1. **企业微信侧配置** - 登录企业微信管理后台,创建应用并获取关键参数:`AgentID`、`Secret`、`CorpID`[^2][^4]。 - 配置可信域名(需与企业微信备案主体一致)。 2. **飞书侧配置** - 在飞书开放平台注册应用,启用“机器人”或“消息事件订阅”权限,获取飞书的`AppID`和`AppSecret`。 - 设置消息回调接口URL,用于接收飞书消息事件。 3. **开发中间服务** - 搭建服务器接收飞书消息回调,验证请求合法性(需解析飞书加密事件)。 - 调用企业微信API发送消息: ```python # 示例:获取企业微信access_token def get_access_token(corpid, corpsecret): url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={corpsecret}" response = requests.get(url) return response.json()["access_token"] # 示例:发送文本消息 def send_message(access_token, userid, content): url = f"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={access_token}" data = { "touser": userid, "msgtype": "text", "agentid": AGENT_ID, "text": {"content": content} } requests.post(url, json=data) ``` 注意:需处理飞书与企业微信消息格式差异(如富文本转换)[^4]。 #### 方案二:通过第三方工具(无需编码) 1. **使用集成平台(如Zapier/集简云)** - 在平台中分别连接飞书和企业微信账号,设置触发条件(如飞书新消息)与动作(向企业微信发送消息)[^3]。 - 需配置飞书的`API Key`与企业微信的`Secret`等参数[^3]。 2. **利用企业微信机器人** - 在企业微信群中创建Webhook机器人,获取推送URL。 - 通过飞书自动化流程(如审批触发后)调用此URL发送HTTP请求[^3]。 #### 关键注意事项 - **安全性**:企业微信要求消息接口配置IP白名单,飞书回调需验证签名[^1]。 - **频率限制**:企业微信API调用频率为每分钟6000次,需设计错误重试机制。 - **消息类型**:仅支持文本/图片/文件等格式,复杂消息需降级处理[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值