我使用Activecollab V5(自托管),我想通过API提取数据。我在这里阅读了API文档
问题是我不知道如何使用它。我需要知道如何生成令牌以及如何在上面的文档中向API端点发出请求。有人可以帮忙吗? 。谢谢 。
答案 0 :(得分:0)
这完全取决于您计划使用的语言来访问API。
我们使用PHP并进行繁重的工作,我们使用AC自己提供的Feather SDK。自述文件提供了一个如何开始的好例子。
我相信还有其他适用于不同语言的SDK。
如果您已将其包含在内,则可以按照文档中的说明运行查询。但是有一些问题,因为文档没有透露所有内容,只给出了具体的用例。
例如,API每页返回约100个结果,但没有任何迹象表明存在第二个页面,因此如果结果等于100,则可能还有更多要检索的内容。
我已经在我的应用程序中创建了这个PHP函数来帮助我获取所有记录。它一直在请求下一页,直到没有其他内容可以处理。
传入的$url
参数类似于projects
或projects/archive
。
/**
* Get pages of data with passed url
* @param [string] $url The api endpoint
* @return [array] All your data
*/
function getPagedData($url) {
// Get all the projects in active collab
$page = 1;
$paged_records = array();
$paged_records_results = $this->activeCollabClient->get($url . '?page=' . $page)->getJson();
$paged_records = array_merge($paged_records, $paged_records_results);
// Loop through pages
while ($paged_records_results = $this->activeCollabClient->get($url . '?page=' . ++$page)->getJson()) {
$paged_records = array_merge($paged_records, $paged_records_results);
}
return $paged_records;
}
希望有所帮助!