1. 安装禅道
1.1  选择适合您的安装方法
1.2  使用云禅道在线项目管理服务!
1.3  (推荐)windows用一键安装包安装
1.4  (推荐)linux用一键安装包
1.5  linux下用lampp集成包安装
1.6  使用源码包安装(MAC系统)
1.7  MAC下用XAMPP安装禅道
1.8  MAC下用XAMPP-VM安装禅道
1.9  禅道一键安装包里安装渠成软件
1.10  使用源码包安装(各系统通用)
1.11  宝塔面板安装禅道
1.12  华芸NAS在线安装
1.13  Centos7.4系统下安装httpd,mariadb,php7.2环境运行禅道
1.14  Centos8系统下安装httpd,mariadb,php7.2环境运行禅道
1.15  安装ioncube扩展
1.16  安装swoole扩展
1.17  Docker方式部署禅道
2. 禅道介绍
2.1  关于禅道项目管理软件
2.2  如何获得支持
2.3  关注我们
3. 升级禅道
3.1  选择和自己环境对应的升级方式
3.2  通过源代码方式升级(通用)
3.3  windows一键安装包的升级
3.4  linux一键安装包升级
4. 创建分组和用户
4.1  建立部门结构
4.2  添加一个用户帐号
4.3  批量维护帐号
4.4  设置分组,建立权限体系
5. 最简使用
5.1  使用禅道来进行项目任务管理
5.2  只使用禅道来做bug管理
5.3  只使用禅道来进行产品管理
5.4  个人使用禅道来做事务跟踪管理
6. 基本使用
6.1  禅道使用的基本流程和产品、研发、测试之间的三权分立
6.2  敏捷开发及scrum简介
6.3  禅道和scrum的对应关系
6.4  禅道的新手教程
6.5  创建第一个产品
6.6  添加第一个需求
6.7  开始第一个项目
6.8  确定项目要完成的需求列表
6.9  为需求分解任务
6.10  提交bug
6.11  视频教程:第一个演示项目
6.12  维护联系人
6.13  禅道的自定义功能
6.14  导入excel、csv参考文档
6.15  文档管理
6.16  工作方式的切换
6.17  操作获取积分功能
6.18  自定义必填项功能
6.19  如何排查产品、项目是否有访问权限
6.20  年度总结,工作内容统计一览表说明
7. 进阶使用
7.1. 使用流程
7.1.1  禅道使用流程图解
7.2. 个人管理
7.2.1  使用待办进行个人事务管理
7.2.2  关注需要自己处理的任务、需求、bug
7.2.3  通过我的档案查看或者修改个人信息
7.2.4  视频教程:禅道使用之个人篇
7.3. 产品经理篇
7.3.1  维护产品
7.3.2  维护产品线
7.3.3  创建和评审需求
7.3.4  变更和评审需求
7.3.5  需求的状态和研发阶段
7.3.6  需求的注意事项
7.3.7  维护产品模块
7.3.8  建立发布计划
7.3.9  建立发布
7.3.10  路线图
7.3.11  文档管理
7.3.12  主持产品会议
7.3.13  参与项目管理、演示和总结
7.3.14  需求的基本统计报表
7.3.15  视频教程:禅道使用之产品经理篇
7.4. 项目经理篇
7.4.1  建立项目
7.4.2  组建项目团队
7.4.3  确定项目要完成的需求列表
7.4.4  组织进行任务分解
7.4.5  召开每天的站立会议
7.4.6  通过燃尽图了解项目的进展
7.4.7  通过各种列表的各种功能了解项目进展
7.4.8  召开演示会议和总结会议
7.4.9  项目任务基本的报表统计
7.4.10  视频教程:禅道使用之项目经理篇
7.5. 开发团队篇
7.5.1  参加项目计划会议,分解任务
7.5.2  领取任务,并每天更新任务
7.5.3  通过看板和树状图查看任务
7.5.4  创建版本
7.5.5  申请测试
7.5.6  解决bug
7.5.7  文档管理
7.5.8  确认bug
7.5.9  视频教程:禅道使用之开发团队篇
7.6. 测试团队篇
7.6.1  维护bug视图模块
7.6.2  提交bug
7.6.3  验证bug,关闭
7.6.4  激活bug
7.6.5  找到自己需要的bug
7.6.6  维护测试用例视图
7.6.7  创建测试用例
7.6.8  测试套件、报告和公共用例库的维护
7.6.9  管理测试版本
7.6.10  执行用例,提交Bug
7.6.11  查看报表统计
7.6.12  视频教程:禅道使用之测试团队篇
8. 维护配置
8.1. 维护禅道
8.1.1  初始化管理脚本
8.1.2  备份禅道
8.1.3  恢复删除的资源
8.1.4  如何更新燃尽图
8.1.5  一键安装包如何实现mysql异机连接
8.1.6  linux一键安装包配置https
8.2. 配置禅道
8.2.1  设置是否允许匿名访问
8.2.2  如何配置email发信
8.2.3  如何成为超级管理员
8.2.4  配置禅道系统为静态访问
8.2.5  去掉禅道访问地址中的zentao
8.2.6  linux一键安装包去掉禅道访问地址中的zentao
8.2.7  集成禅道和svn
8.2.8  集成禅道和git
8.2.9  在第三方应用中集成禅道
8.2.10  第三方应用配置免密登录禅道
8.2.11  第三方应用集成禅道客户端进行消息通知
8.2.12  集成webhook
8.2.13  集成ZDOO
8.2.14  客户端集成
8.2.15  禅道的翻译功能
8.2.16  浏览器通知的设置
8.2.17  集成钉钉工作消息通知
8.2.18  集成企业微信应用消息通知
8.2.19  集成飞书群机器人
8.2.20  集成飞书消息通知
8.2.21  集成版本库、集成Jenkins,并进行构建
8.2.22  解决一键安装包密码口令弱的问题
8.3. 性能优化
8.3.1  nginx反向代理禅道502或504bad gateway错误
8.3.2  linux系统中配置session使用redis
9. 定制开发
9.1  二次开发机制
9.2  禅道的目录结构
9.3  找到要修改的文件
9.4  禅道的数据库结构
9.5  公用模块--common
9.6  如何登记菜单
9.7  如何登记权限
9.8  示例:如何修改禅道的语言提示?
9.9  示例:创建bug时可以设置优先级字段
9.10  使用在线扩展编辑器
9.11  二次开发编辑器和翻译功能限制使用说明
9.12  禅道项目管理软件打包规范1.1版本
10. 其他相关
10.1  禅道所使用到的第三方代码
10.2  禅道FAQ
10.3  如何帮助禅道项目
10.4  禅道商业服务
10.5  禅道项目的贡献者
10.6  历史修改记录

在第三方应用中集成禅道

2017-10-27 10:46:56
刚哥
44216
最后编辑:王林 于 2021-11-02 13:51:30
分享链接
摘要:本文讲述如何在第三方应用中集成禅道。

禅道从9.6版本开始内置了在第三方应用中集成禅道的功能,可以方便的将禅道的数据和第三方应用打通。第三方应用必须以 GET 方式访问禅道,禅道以 JSON 格式返回数据。下面我们介绍如何配置该功能。

一、配置

用超级管理员用户登录禅道,进入后台 => 二次开发 => 应用,点击【添加应用】按钮新增一个应用,如图:

注意:

1、 应用名称、应用代号、密钥是必填项,代号只能为字母或数字的组合,密钥由系统自动生成。

2、 IP描述为选填项。此处的 IP 是一个白名单,默认没有限制所有 IP 都可以访问。

3、和别的系统相互调用数据,免密登录必须是 关闭状态。

二、签名机制

第三方应用在请求禅道数据的时候需要做签名验证,API 的请求格式为 /api.php? m=moduleName&f=methodName& params=params &code=code &time=timestamp &token=token。

m=moduleName&f=methodName& params=params 部分为数据请求参数,根据实际的需求进行设置。

code为应用代号,需要和禅道应用设置中保持一致。

time位时间戳,可以通过PHP的time函数得到。

token为数字签名,其算法为:code、密钥、time字符串合并,再进行 md5。

以上图设置的应用为例,应用代号为 myApp,密钥为 427c579384224abf9570779d82969d1e,请求id为1的项目详情,其 token 计算过程如下:

$code  = 'myApp';
$key   = '427c579384224abf9570779d82969d1e';
$time  = '1557034496';
$token = md5($code . $key . $time);

算得 token = 020ec7c33a7f1a048743849d15fb218a,请求 API 为 /api.php?m=project&f=view&id=1&code=myApp&time=1557034496&token=020ec7c33a7f1a048743849d15fb218a。

注意:时间戳只能用一次,下次请求的时间戳必须大于该时间戳。

三、全局错误码

300001 缺少 code 参数,检查请求 API 中是否包含 code 参数。
300002 缺少 token 参数,检查请求 API  中是否包含 token 参数。
310001 应用不存在, 检查请求的应用在禅道中是否存在,或是否已被删除。
310002 应用未设置密钥,检查请求的应用在禅道中是否设置密钥。
320001 该IP访问被限制访问,检查请求的应用在禅道中的 IP 设置。
330001 不合法的token参数,检查请求 API 中的 token 是否计算正确。

有时会出现请求内跳转的情况,如请求 index 模块的 index 方法时默认会跳转到 my 模块的 index 方法,这时系统通过 session 来验证跳转后的请求是否合法。
340001 缺少session code,检查跳转后 $_SESSION['ENTRY_CODE'] 是否正确。
340002 session验证失败,检查 session 验证逻辑,检查跳转后 $_SERVER['REMOTE_ADDR'] 是否正确。

评论列表
风君子 2022-08-10 11:13:48
请问能支持钉钉扫码登录吗?
禅道-阿龙 2022-08-10 11:15:23 回复
目前暂不支持钉钉扫码登录,相关代码开源,您可以修改代码实现,二次开发参考文档:
http://www.zentao.net/book/zentaopmshelp/156.html
http://www.zentao.net/book/zentaopmshelp/225.html
2022-08-04 17:33:03
禅道版本8.8,能使用java调用禅道API向禅道推送bug不
cuiping 2022-08-04 17:49:54 回复
后台-二次开发-api 列表里面看下;
贵公司版本比较老了,建议升级下版本
升级不会影响数据的,升级前请做好数据备份
升级请参考文档:http://www.zentao.net/book/zentaopmshelp/41.html
备份请参考文档:http://www.zentao.net/book/zentaopmshelp/42.html
ran 2022-06-08 17:06:40
{"error":"EMPTY_ENTRY"} 登陆返回这个信息是什么意思
张彩玲 2022-06-08 17:15:50 回复
您好,您可以添加我们商务同事宋晓的QQ:2468103332,邀请您加入技术支持交流群协助解决问题呢。
sheep 2022-04-15 11:31:24
java项目接入禅道免密登录,使用的是开源版15.5, 每次相隔5秒去生成免密登录地址(我十分确定以及肯定时间戳每次都不一样,相差了5秒多,远远大于1秒), 要么连续成功,要么连续失败,失败的报错是(405, token已失效)不稳定, 请问下可以怎么定位问题呢?
cuiping 2022-04-15 13:45:07 回复
时间戳只一次有效的
sheep 2022-04-15 14:06:57 回复
是的啊,所以每次请求时 都是新的时间戳,时间戳间隔都是大于1s
禅道-Bee 2022-04-15 16:19:05 回复
module/common/model.php中的checktEntryToken方法中的时间判定规则可以修改为不小于试试。
向先生 2022-03-01 21:22:25
咨询:禅道是否提供供第三方查询接口,用于获取对应用户在禅道维护的项目名及项目进展等信息?
马超 2022-03-02 10:12:35 回复
禅道api 可以直接在禅道页面查看到:
后台-二次开发-API 页面
后台-二次开发-数据库 页面
洪涛 2021-09-28 09:11:54
禅道有没有移动端H5页面啊,这样就可以集成到自家的钉钉上了
王林 2021-09-28 10:50:24 回复
手机端是专业版和企业版功能,需要的话可以联系页面QQ试用。
另外,请不要在多个位置提问
eric1 2021-09-26 15:52:27
时间戳只能用一次所以每秒只能接收一个请求?
阿龙 2021-09-26 16:27:31 回复
是的,目前是这样的机制
小罗 2021-09-09 16:16:32
各位好,使用签名机制时有几个题需要咨询下:
1、 使用签名机制调用接口是否不需要再进行登录操作呢?(获取任务列表、新增任务、完成任务等)
2、 m=moduleName&f=methodName& params=params 这些对应的接口功能在哪找到呢?(获取任务列表应该 m、f、params 分别对应哪些?)
3、 使用文档中提供的示例调用测试 /api.php?m=project&f=view&id=xxx&... 回应是 406,尝试着调用别的请求也是 406,没有传递用户信息,为什么会报错这个呢?
王林 2021-09-09 17:31:52 回复
群里已经回复了,需要看下配置页面
van 2022-05-28 23:37:17 回复
你好,我也有上述同样的问题,另外你说的群里已经回复了的群是哪个啊,怎么加入呢
马超 2022-05-30 08:06:14 回复
可以加一下左上角的商务联系方式,商务邀请进群后沟通。
jh 2022-03-02 14:49:26 回复
这个问题怎么解决?在使用样例接口访问,遇到同样的问题
马超 2022-03-02 16:09:42 回复
可以加一下左上角的商务联系方式,商务邀请进群后协助您解决一下。
王先生 2021-08-25 15:55:56
你好,调用接口,返回如下:<html><meta charset='utf-8'/><style>body{background:white
}</style><script>self.location='/zentao/';

</script>

这样算是免密登录成功了吗?
马超 2021-08-25 17:19:54 回复
登录成功了,可以传参试下。
如果还有其他疑问, 可以加一下左上角的商务联系方式,商务邀请进群后沟通。
eric 2021-07-15 12:01:47
怎么以某一个用户的身份去请求接口,我现在只能请求到应用配置的时候配置的root账号的数据。
禅道-Bee 2021-07-15 15:17:39 回复
这块只能用创建应用选择的用户的,可以多创建几个应用,添加多个用户试试。
1/2 1 2
发表评论
评论通过审核后显示。