【问题标题】:ActiveCollab API v1 cannot change hourly_rates on projectActiveCollab API v1 无法更改项目的 hourly_rates
【发布时间】:2019-11-04 14:09:26
【问题描述】:

我无法通过 API(使用 JavaScript/Google 脚本)更改项目或客户端对象的 hourly_rate

var responseObject = [];
  var payload = {
    "name": "Test project 125",
    "hourly_rates": {"45": 222}
  }
  var response = UrlFetchApp.fetch("https://app.activecollab.com/218040/api/v1/projects", {
                                   "method": "post",
                                   "headers": {
                                   'X-Angie-AuthApiToken': api_token
                                   },
                                   "payload" : payload,   
                                   "followRedirects" : true,
                                   "muteHttpExceptions": true
                                   });

  if (response.getResponseCode() == 200) {
    responseObject = JSON.parse(response.getContentText());
  }

  console.log(responseObject);

返回:

hourly_rates={45=100, 24=20, 3=100, 38=50, 17=15, 31=50, 10=100}

如果我使用 PUT 方法,我会得到相同的结果。其他所有内容都会保存,但不会保存小时费率。

【问题讨论】:

    标签: activecollab


    【解决方案1】:

    你试过ActiveCollab SDK吗? 我不确定您针对的是哪家公司或哪种工作类型。

    从 git 下载包后,运行 composer update

    这是一个例子:

    <?php
    
    /*
     * This library is free software, and it is part of the Active Collab SDK project. Check LICENSE for details.
     *
     * (c) A51 doo <info@activecollab.com>
     */
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    $authenticator = new \ActiveCollab\SDK\Authenticator\Cloud('ACME Inc', 'My Awesome Application', 'YOUR-EMAIL', 'YOUR-PASSWORD');
    
    // Show all Active Collab 5 and up account that this user has access to
    print_r($authenticator->getAccounts());
    
    // Show user details (first name, last name and avatar URL)
    print_r($authenticator->getUser());
    
    // Issue a token for account #123456789
    $token = $authenticator->issueToken(176178);
    
    if ($token instanceof \ActiveCollab\SDK\TokenInterface) {
        print $token->getUrl() . "\n";
        print $token->getToken() . "\n";
    } else {
        print "Invalid response\n";
        die();
    }
    
    // Create a client instance
    $client = new \ActiveCollab\SDK\Client($token);
    
    // Make a request
    print_r($client->get('/job-types/5')->getJson());
    try {
        $client->put('/job-types/5', [
            'single' => [
                'default_hourly_rate' => 300
            ]
        ]);
    
    } catch(AppException $e) {
        print $e->getMessage() . '<br><br>';
    }
    

    这是一个如何直接更改小时费率的示例,您可以通过/projects/ID-OF-THE-PROJECT 进行更改

    请参考API文档:https://developers.activecollab.com/api-documentation/v1/people/companies/custom-hourly-rates.html

    【讨论】:

    • 我不确定 PHP SDK 将如何解决我的问题,因为这是 Javascript / Google Script 应用程序。
    • 问题不在于 default_hourly_rate,而在于项目的自定义小时费率。我正在使用documentation,它建议PUT /projects/1 和有效负载{ "hourly_rates": { "1": 250 } } (即我知道我的工作类型为id 1,我想将此项目的费率更改为250。这不起作用)
    • POST 请求不起作用,只能 PUT。向您发送 PUT 请求成功的屏幕截图:ibb.co/CQmR1vjibb.co/BtWtL6H
    • 由于某些未指明的原因,它仅在有效载荷如下所示时才对我有效:{ "hourly_rates[45]": 1234, "hourly_rates[31]": 4321 } 感谢您的帮助!
    猜你喜欢
    • 2019-07-08
    • 2020-04-25
    • 1970-01-01
    • 2017-08-08
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多