如何使用 PHP API 更新跑道类别

How to update a Podio category using PHP API

我正在使用 webhook 启动一系列 PHP 脚本,这些脚本利用了 Podio PHP API。我已经尝试使用几个不同的 API 调用,但无法解决这个问题。这是我正在使用的测试文件,因此它所做的实际逻辑没有多大意义。当我 运行 下面的代码出现错误时。

PHP Fatal error:  Uncaught PodioBadRequestError: "Invalid value "status" (string): Not a valid option"
Request URL: http://api.podio.com/item/<removed>/value/<removed>

Stack Trace:
/data/www/default/contracts/lib/podio-php-master/lib/Podio.php(357): 
Podio::request('PUT', '/item/<removed>...', Array)
/data/www/default/contracts/lib/podio-php-master/models/PodioItemField.php(55): Podio::put('/item/<removed>...', Array)
/data/www/default/contracts/test-category.php(25): 
PodioItemField::update(<removed>, <removed>, Array, Array)
{main}
  thrown in /data/www/default/contracts/lib/podio-php-master/lib/Podio.php on line 291`

这是我的代码:

//dummy item_id
$item_id = 123456789;

//dummy field_id      
$field_id = 987654321;

//Get the category field value
$item = PodioItem::get_field_value($item_id, $field_id);

//Create a variable with the text of the selected category option for validation
$button_value = $item[0]['value']['text'];

//Print the text of the selected option
print $button_value;

//Now that I have validated the current selection I want to change it 
//These are the names of the attributes for my category
$my_attributes = array("status", "text", "id", "color");

//These are the values I want to update them to
$my_options = array("active","Generated",21,"DCEBD8");

//This should update the record in podio with the new values
PodioItemField::update($item_id, $field_id, $my_attributes, $my_options);

我查看了文档中的所有示例,但我觉得我遗漏了一些简单的东西。有没有人熟悉这个可以告诉我我做错了什么?我试图对代码进行注释,以明确我希望在每一行上发生什么,但如果需要,我绝对可以澄清更多。

您在错误的方法中传递属性。要更新类别字段,您只需在数组中传递要更改的选项的 id。所以 $my_attributes 数组必须像,

$my_attributes = array(21);//id of the category option

$my_options 数组应该是这样的,

 $my_options = array('silent' => true, 'hook' => false);

这应该用新值更新跑道中的项目,

PodioItemField::update($item_id, $field_id, $my_attributes, $my_options);