2016-04-08 17 views
1

Harvest APIを使用して、指定された時間枠内の合計時間を出力する必要があります。私はPHPでコーディングされているが、それは誤りに未定義のメソッドHarvestAPI :: getUsersActiveTimer()にコールを与える 入力はこれが私のコードであるHarvest API-PHP-特定の時間枠の合計時間を追跡する

開始日 終了日 出力 合計時間です

 <?php 
    require_once(dirname(__FILE__) . '/HarvestAPI.php'); 

    spl_autoload_register(array('HarvestAPI', 'autoload')); 

    $api = new HarvestAPI(); 
    $api->setUser($user); 
    $api->setPassword($password); 
    $api->setAccount($account_name); 

    $api->setSSL(true); 

    $result = $api->getUsersActiveTimer($userid); 

    if($result->isSuccess()) { 
    echo "It is Successful!"; 
     if(! is_null($result->data)){ 
      echo $result->get("started-at"); 
     } 
    } 

else{ 
echo "It is not Successful"; 

} 

?> 

は親切にあなたはと呼ばれる方法がないことがわかりますHarvest API hereを見てみると、この

答えて

1

について移動するための方法を提案します。古いバージョンのものかもしれません。 getUserEntriesメソッドを使用すると、特定の時間範囲および特定のプロジェクトのすべてのユーザーエントリを取得できます(指定されている場合)。 PHPでいくつかの追加計算が必要になるかもしれませんが、いくつかのデータを返さなければならないので有効なメソッドです。期間を指定する必要があります。ここでは、ドキュメントの使用例を示します。

$range = new Harvest_Range("20090712", "20090719"); 
$project_id = 12345; 
$user_id = 11111; 

$api = new HarvestAPI(); 

$result = $api->getUserEntries($user_id, $range, $project_id); 
if($result->isSuccess()) { 
    $dayEntries = $result->data; 
    var_dump($dayEntries); 
} else { 
    //no data! 
} 
+0

私はこれを試しましたが、何らかの理由で出力が表示されませんでした。私が取り組んでいるデータにはプロジェクトIDがありません。毎日働いている時間数のタイムシートのみが含まれています。この情報のみを使用したいと思います。 – user3402248

+0

問題なく、プロジェクトIDをそのまま残すことができます。それはAPIでそう言います。ここでの最善のアプローチの1つは、遅くなり、公式の文書に行き、慎重に読むことです。それはあなたの机とあなたの額の両方を節約します。 – larsAnders

+0

アドバイスをいただきありがとうございます。それを行います – user3402248

関連する問題