如何通过ActiveCollab Feather SDK获取项目任务列表
ActiveCollab Feather SDK 任务列表返回值提取说明
基础背景
PHP开发新手在参考ActiveCollab Feather SDK官方文档实现项目任务查询功能时,已顺利走完基础对接流程:
- 按照文档指引完成云账户认证代码编写,流程运行正常,可成功获取有效访问令牌
- 基于获取的认证令牌可正常创建API调用客户端,初始化代码为:
$client = new \ActiveCollab\SDK\Client($token); - 按照文档说明的接口规则,调用
$client->get('projects/65/tasks');即可获取指定ID项目下的任务列表数据
已验证可用的认证代码
<?php require_once '/path/to/vendor/autoload.php'; // 初始化云账户认证器,依次传入所属公司名称、开发的应用名称、账号登录邮箱、账号登录密码 $authenticator = new \ActiveCollab\SDK\Authenticator\Cloud('ACME Inc', 'My Awesome Application', 'you@acmeinc.com', 'hard to guess, easy to remember'); // 打印当前账号可访问的所有Active Collab 5及以上版本的账户列表 print_r($authenticator->getAccounts()); // 打印当前认证用户的基础信息(包含名、姓、头像地址) print_r($authenticator->getUser()); // 为指定ID的账户签发专属访问令牌 $token = $authenticator->issueToken(123456789); // 校验令牌签发结果 if ($token instanceof \ActiveCollab\SDK\TokenInterface) { print $token->getUrl() . "\n"; print $token->getToken() . "\n"; } else { print "Invalid response\n"; die(); }
现存疑问
调用任务列表接口后,对返回对象的使用规则不清晰:
- 直接用
print无法正常输出接口返回内容,尝试通过print_r()打印对象后,发现任务列表的核心内容存储在raw_response属性中 - 该
raw_response属性为私有属性,无法直接访问读取 - 不清楚SDK返回对象对外提供了哪些可用的方法、属性,不知道如何正确提取完整任务列表内容(已知私有属性存储的内容可能是字符串或JSON格式对象)
正确提取方式
$client->get()方法的返回值是SDK封装的Response类实例,不是可直接遍历的原始数据对象,不需要手动读取私有属性- 该Response类对外提供了两个公开方法满足不同的读取需求:
- 获取结构化解析后的任务数据:调用
$response->getJson()方法,SDK会自动将JSON格式的原始响应内容解析为PHP数组/对象,拿到可直接遍历操作的任务列表 - 获取原始响应内容:调用
$response->getBody()方法,可拿到未做格式转换的原始响应字符串,等价于读取私有存储的raw_response内容
- 获取结构化解析后的任务数据:调用
示例代码
// 调用项目任务列表接口,拿到SDK封装的Response实例 $response = $client->get('projects/65/tasks'); // 直接获取解析完成的结构化任务列表,可直接做数组遍历、字段取值等常规操作 $taskList = $response->getJson(); // 如果需要拿到原始未解析的响应内容,调用对应方法即可 $rawResponseContent = $response->getBody();
注意:不需要自行对
raw_response做JSON格式转换,SDK内置的getJson()方法已经处理了格式校验、错误捕获等逻辑,可直接使用返回的结构化数据。
内容的提问来源于stack exchange,提问作者thoob
相关产品推荐
相关产品推荐

