禅道SDK开发手册

配置使用与常见问题 分享链接 /book/api/setting-369.html

作者:雷勇 最后编辑:薛才杰 于 2024-07-24 13:08:10 浏览量:158345
摘要:本篇将介绍如何在PHP编程语言中集成与使用此SDK,只需要简单的进行配置和引用便可使用。

一、配置参数

禅道 PHP-SDK 在开源版 12.0.1 版本之后新增到禅道框架目录中,禅道 PHP-SDK 文件位于【禅道项目目录/sdk/php/】下。使用 SDK (zentao.php)文件之前,需要在引用的禅道 SDK 文件中填写一些必要配置信息。禅道安装部署的域名、禅道用户账户、禅道用户密码、禅道配置的参数请求方式。

const ztUrl        = 'http://zentao.*****.com';    // 禅道部署域名
const ztAccount    = 'admin';                      // 禅道登录账户
const ztPassword   = '123456';                     // 禅道登录密码
const ztAccessMode = 'PATH_INFO';                  // 禅道参数请求方式[ GET | PATH_INFO ]


二、禅道SDK可用API列表

  • 获取部门列表
  • 批量添加部门
  • 获取用户列表
  • 添加单个用户可选信息
  • 添加单个用户
  • 获取产品列表
  • 添加单个产品可选信息
  • 添加单个产品
  • 获取项目列表
  • 添加单个项目可选信息
  • 添加单个项目
  • 获取任务列表
  • 添加单个任务可选信息
  • 添加单个任务
  • 完成单个任务可选信息
  • 完成单个任务
  • 获取Bug列表
  • 添加单个Bug可选信息
  • 添加单个Bug
  • 解决单个Bug可选信息
  • 解决单个Bug

三、使用说明与示例

 3.1使用说明

在使用前,确保配置的相关信息填写无误,同时确保登录账户有足够的权限以及登录账户无需进行弱密码重置。所有请求的 API 结果都以 JSON 格式返回,可以根据请求结果中的 status 状态来判断是否请求成功,如果请求失败,部分 API 会给出相应的提示。在请求 API 的过程中,以 【获取部门列表】 举例,$params 包含了可传的请求参数,可以为空数组,传参中无需必填参数时可不传递此变量。$extraFields 自定义返回字段,可以根据所需字段结果,进行返回,可自定义字段不限于示例中的字段,此变量可以不传。

 3.2使用示例

以下将以 zentaoPHP 框架中引用作为示例,将 SDK 文件放置在框架目录 tools/zentao/ 下。其它主流框架,如 ThinkPHP、Laravel 等可根据实际需求放置框架目录中,存放目录尽量遵守框架规范。

/**
 * 获取部门列表
 * 
 * @access public
 * @return void
 */
public function getDeptList()
{
    include_once('../../tools/zentao/zentao.php');
    $zentao      = new zentao();    // 实例化类,如果实例化错误,可修改为 "\new zentao();"
    $params      = array('deptID' => 1);    // 请求参数
    $extraFields = array('title', 'deptID', 'parentDepts', 'sons', 'tree');    // 自定义返回字段
    $result      = $zentao->getDeptList($params, $extraFields);    // 调用SDK方法
    echo $result;
}

四、常见问题?

 4.1调用禅道 SDK 类中方法,出现错误提示 "Trying to get property of non-object" ?

通常由以下情况造成,开发者可以打印输出 SDK 中请求结果 $result 查看返回信息以此查看原因。

  • 第一种情况,需要修改密码。解决方案: 登录后台管理系统,找到 后台->安全->密码安全设置 关闭密码检查、关闭强制修改弱密码、关闭强制首次登录修改密码
<html><meta charset='utf-8'/>
<style>body{background:white}</style>
<script>self.location='/index.php?m=my&f=changepassword&t=json';</script>
  • 第二种情况,没有操作权限。解决方案: 登录后台管理系统,给该账号设置相关权限。
<html><meta charset='utf-8'/>
<style>body{background:white}</style>
<script>self.location='/index.php?m=user&f=deny&t=json&module=dept&method=browse';</script>
  • 第三种情况,缺失参数。解决方案: 在 API 列表 中找到对应方法,检查所传参数是否与文档列表中的参数相符。

4.2 调用禅道 SDK 类中方法,出现错误提示 "Fatal error: Uncaught Error: Call to undefined function curl_init() "?

这个是由于当前 PHP 缺失了 curl 的扩展,安装这个 PHP 扩展即可恢复正常使用。

关键词

评论列表
🍣
冷静的土豆 2025-01-18 11:07:16 回复
/users 接口有其他参数吗?查询人员需要
回复
restful 的 /usres 接口当前支持的参数如文档中所述 ,用户类型、当前页数、每页用户数。


📖
玩足球的蜡烛 2024-07-05 13:47:01 回复
restful api从专业版的哪个版本开始支持?需要做额外配置不?
回复
16.0版本支持的,建议升级到新版本,升级前请做好数据备份
升级请参考文档:http://www.zentao.net/book/zentaopmshelp/41.html
备份请参考文档:http://www.zentao.net/book/zentaopmshelp/42.html
📖
失眠的灯泡 2024-07-03 13:09:00 回复
http://zentao.xxxxxxx.com/zentao/api.php/v1/tokens

{
"errcode": 401,
"errmsg": "缺少code参数"
}
请问报这个错误
回复
您好,请确认下咱的虚拟主机是否包含api 相关的配置。

# API 相关配置
if ($request_filename ~* "api.php"){
set $rule_0 3$rule_0;
}
if ($rule_0 = "21"){
rewrite /(.*)$ /index.php/$1 last;
}
# API 相关配置
if ($rule_0 = "31"){
rewrite /(.*)$ /api.php/$1 last;
}
location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 1d;
}

其次该接口需要将正确的(可登录禅道的) account 和 password 作为请求体参数传递。

如果不能解决您的问题,请添加官网商务QQ,邀请加入技术交流群沟通,即时性会更好一些。
📙
2023-10-30 15:30:52 回复
创建需求/stories这个api,能够支持设置需求的status为active吗,可以自动通过评审以及指定评审人
回复
是否评审是后台 - 功能配置里面统一配置的 , 关闭评审流程,创建完成就是激活状态 ,当然你也可以在后台配置谁需要评审, 关闭评审流程,也允许用户手动选择评审人员。
f12 打开浏览器控制面板,每个场景提交下,看看表单里面的参数,应该可以实现咱们这个功能
📙
2023-10-30 11:50:28 回复
调用/users创建用户,可以自动分配用户的权限吗
回复
没有这个功能
📙
2023-10-30 11:10:09 回复
调用创建用户api,可以分配用户权限吗
回复
可以
f12 打开浏览器 新建一个用户,设置多个权限分组看看, 有个 group[]: 字段来记录权限值
📙
2023-10-24 18:03:57 回复
创建产品,需求,执行等调用api时,好像是根据获取的token来决定创建人是谁,可以自己指定创建人吗
回复
不可以 ,目前没有这个参数
🌱
小马甲 2023-10-12 14:12:27 回复
请问创建任务这个接口,不支持增加具体描述吗?没看到desc这个参数。
回复
看了下代码有这个字段,可以尝试添加这个字段试试看
/**
* POST method.
*
* @param int $executionID
* @access public
* @return string
*/
public function post($executionID)
{
$fields = 'name,type,assignedTo,estimate,story,execution,project,module,pri,desc,estStarted,deadline,mailto,team,teamEstimate,multiple,uid';
$this->batchSetPost($fields);

$assignedTo = $this->request('assignedTo', array(0 => ''));
if($assignedTo and !is_array($assignedTo)) $assignedTo = array($assignedTo);
$this->setPost('assignedTo', $assignedTo);
if($this->request('multiple'))
😺
禅道0565 2023-10-11 17:22:26 回复
有执行相关的数据库文档吗,在后台没看到
回复
admin登录禅道,后台 二次开发 数据库,可以参考下。
😺
禅道0565 2023-10-08 11:24:15 回复
企业版8.0的API接口是这个吗
回复
sdk 已经不使用了 ,看下我整理的这个文档吧
https://www.wolai.com/yandmain/2GuadUPoWLWCDXZfy5awcU
回复
禅道后台 - 二次开发 - API里面关于接口的出入参没有描述和说明;
缺少使用demo;
相关的API也比较分散,不同接口在不同文档里面调用方式不一样;
回复
这块我们反馈下, 目前咱们主要是要解决什么场景?
我们提供下对应的api
回复
平台中研发需求、任务、缺陷的全量数据分页列表,不需要根据项目/迭代过滤
回复
没有这样的api ,目前都是有产品或者项目的过滤
回复
这个api文档好像看不了诶,请问是链接过期了吗?
回复
https://flowus.cn/yandamin/share/19f410e2-aa7a-4e59-8384-456cd442aa61?code=2TR4DK
可以看下这个文档
回复
3q~
回复
:)
回复
老师早哈!还有一个问题想咨询您,关于禅道客户端的,看官网介绍禅道客户端是基于喧喧做的,喧喧上有一个扩展应用的功能,可以按照模板配置zip安装拓展应用,我看禅道的客户端也可以点开扩展应用的按钮,但上面好像只有禅道、文件、主题等固定的应用,不知道禅道的客户端是否有类似喧喧的可以安装拓展应用的功能?
回复
扩展支持客户端安装或者服务端安装,如果客户端安装仅对一个用户生效,如果是服务端安装可以覆盖所有客户端。
目前禅道后台不支持安装喧喧扩展。
可以尝试在客户端安装看看,如果不可以的话,就无法安装了
回复
你好,这个也访问不了,请问还有旧版本使用session方式访问接口的文档吗
回复
可以看下手册:https://devel.easycorp.cn/book/extension/api-auth-44.html
刘斌
高级客户经理
17685869372
526288068
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。 问题反馈反馈点击这里,让我们聆听您的建议与反馈。