2017-09-28 1 views
0

Ich verwende ein ActiveCollab V5 (selbst gehostet) und möchte Daten über APIs ziehen. Ich habe Dokumentation hier API lesenSo verwenden Sie ActiveCollab V5 APIs

API Documentation

Das Problem ist, dass ich weiß nicht, wie es zu benutzen. Ich muss wissen, wie man ein Token generiert und wie man Anfragen an API-Endpunkte in der obigen Dokumentation stellt. Kann mir bitte jemand helfen? . Vielen Dank .

Antwort

0

Es hängt vollständig von der Sprache ab, die Sie für den Zugriff auf die API verwenden möchten.

Wir verwenden PHP und für das schwere Heben verwenden wir die Feather SDK von AC selbst zur Verfügung gestellt. Die Readme-Datei bietet ein gutes Beispiel für den Einstieg.

Ich glaube, es gibt andere SDKs für verschiedene Sprachen.

Sobald Sie es eingefügt haben, können Sie die Abfragen dann wie in der Dokumentation beschrieben ausführen. Es gibt jedoch einige Fehler, da die Dokumentation nicht alles verrät und nur bestimmte Anwendungsfälle gibt.

Zum Beispiel gibt die API ~ 100 Ergebnisse pro Seite zurück, aber ohne Hinweis darauf, dass es eine zweite Seite gibt. Wenn die Ergebnisse gleich 100 sind, besteht die Möglichkeit, dass mehr abgerufen werden kann.

Ich habe diese PHP-Funktion in meiner App gemacht, um mir zu helfen, alle Datensätze zu bekommen. Es fordert die nächste Seite an, bis nichts mehr zu verarbeiten ist.

Der $url param übergeben ist so etwas wie projects oder 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; 
} 

Hoffe, dass hilft!