如何使用 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);
我正在使用 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);