【问题标题】:How to get all the tasks for a specific appitem如何获取特定应用程序的所有任务
【发布时间】:2017-11-12 07:22:59
【问题描述】:

过去 4 小时我一直在试图弄清楚如何获取引用特定 AppItem 的任务列表。

以下方法不起作用:

// Doesn't work
// $tasks = PodioTask::get_all(array(
// 'reference' => 'rmticket:' . $rmt->item_id,
// ));

// $tasks = PodioTask::get_all(array(
// 'reference' => array('type' => 'rmticket', 'id' => $rmt->item_id),
// ));

// $tasks = PodioTask::get_all(array(
// 'item' => $rmt->item_id,
// ));

// $tasks = PodioTask::get_all(array(
// 'ref_id' => $rmt->item_id,
// ));

此处的文档:https://developers.podio.com/doc/tasks/get-tasks-77949

说这个的参数是:

参考

以分号分隔的“type:id”形式的引用列表。

这是我尝试的第一件事,我收到以下错误:

Uncaught PodioBadRequestError: "Invalid value "rmticket" (string): must be one of {'comment', 'rating', 'invoice', 'campaign', 'app_revision', 'app', 'share', 'system', 'hook', 'tag', 'voucher', 'file', 'flow_effect', 'vote', 'partner', 'message', 'conversation', 'share_install', 'form', 'space_member_request', 'space', 'notification', 'auth_client', 'question', 'integration', 'payment', 'subscription', 'live', 'label', 'answer', 'icon', 'location', 'status', 'org_member', 'widget', 'extension_installation', 'file_service', 'app_field', 'alert', 'profile', 'user', 'task_action', 'org', 'condition_set', 'embed', 'condition', 'space_member', 'identity', 'item_participation', 'task', 'extension', 'linked_account', 'grant', 'flow', 'batch', 'contract', 'project', 'item', 'connection', 'flow_condition', 'question_answer', 'action', 'item_revision', 'voting', 'promotion', 'bulletin', 'view'

-- 安德鲁。

更新: 我也尝试了以下方法:

//    $tasks = PodioTask::get_all(array(
//      'grouping' => 'rmticket:' . $rmt->item_id,
//    ));
    // Fatal error: Uncaught PodioBadRequestError: "Invalid value "rmticket:720406510" (string): Must be one of ['due_date', 'completed_on', 'reference', 'space', 'app', 'responsible', 'created_by', 'label', 'org' in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//    $tasks = PodioTask::get_all(array(
//      'grouping' => 'reference',
//      'item_id' => $rmt->item_id,
//    ));
    // Fatal error: Uncaught PodioBadRequestError: "Invalid filter item_id" Request URL: http://api.podio.com/task/?grouping=reference&item_id=720406510 Stack Trace: #0 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php(349): Podio::request('GET', '/task/', Array, Array) #1 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/models/PodioTask.php(100): Podio::get('/task/', Array) #2 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(217): PodioTask::get_all(Array) #3 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(152): rmtCreateTask(Object(AvcPodioItem), 'Carpet Cleaning', 10, 3) #4 /home/avcorp/vhosts/pubvps/podio_rmticket/poll/rmticket_poll.php(54): test_task_creation() #5 {main} thrown in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//  $tasks = PodioTask::get_all(array(
//      'grouping' => 'reference',
//      'item' => $rmt->item_id,
//  ));
  // Fatal error: Uncaught PodioBadRequestError: "Invalid filter item" Request URL: http://api.podio.com/task/?grouping=reference&item=720406510 Stack Trace: #0 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php(349): Podio::request('GET', '/task/', Array, Array) #1 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/models/PodioTask.php(100): Podio::get('/task/', Array) #2 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(222): PodioTask::get_all(Array) #3 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(152): rmtCreateTask(Object(AvcPodioItem), 'Carpet Cleaning', 10, 3) #4 /home/avcorp/vhosts/pubvps/podio_rmticket/poll/rmticket_poll.php(54): test_task_creation() #5 {main} thrown in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//  $tasks = PodioTask::get_all(array(
//      'grouping' => 'reference',      
//  ));
  //  Fatal error: Uncaught PodioBadRequestError: "Query not restrictive enough, must filter on either org, space, app, responsible, reference, created_by or completed_by" Request URL: http://api.podio.com/task/?grouping=reference Stack Trace: #0 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php(349): Podio::request('GET', '/task/', Array, Array) #1 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/models/PodioTask.php(100): Podio::get('/task/', Array) #2 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(227): PodioTask::get_all(Array) #3 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(152): rmtCreateTask(Object(AvcPodioItem), 'Carpet Cleaning', 10, 3) #4 /home/avcorp/vhosts/pubvps/podio_rmticket/poll/rmticket_poll.php(54): test_task_creation() #5 {main} thrown in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//  $tasks = PodioTask::get_all(array(
//      'grouping' => 'reference:' . $rmt->item_id,      
//  ));
  // Fatal error: Uncaught PodioBadRequestError: "Invalid value "reference:720406510" (string): Must be one of ['due_date', 'completed_on', 'reference', 'space', 'app', 'responsible', 'created_by', 'label', 'org' in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//  $tasks = PodioTask::get_all(array(
//      'item' => array('item_id' => $rmt->item_id),
//  ));
  // Fatal error: Uncaught PodioBadRequestError: "Invalid filter item" Request URL: http://api.podio.com/task/?item= Stack Trace: #0 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php(349): Podio::request('GET', '/task/', Array, Array) #1 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/models/PodioTask.php(100): Podio::get('/task/', Array) #2 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(238): PodioTask::get_all(Array) #3 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(152): rmtCreateTask(Object(AvcPodioItem), 'Carpet Cleaning', 10, 3) #4 /home/avcorp/vhosts/pubvps/podio_rmticket/poll/rmticket_poll.php(54): test_task_creation() #5 {main} thrown in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//  $tasks = PodioTask::get_all(array(
//      'grouping' => 'reference',    
//      'ref_id' => $rmt->item_id,
//  ));
  // Fatal error: Uncaught PodioBadRequestError: "Invalid filter ref_id" Request URL: http://api.podio.com/task/?grouping=reference&ref_id=720406510 Stack Trace: #0 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php(349): Podio::request('GET', '/task/', Array, Array) #1 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/models/PodioTask.php(100): Podio::get('/task/', Array) #2 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(243): PodioTask::get_all(Array) #3 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(152): rmtCreateTask(Object(AvcPodioItem), 'Carpet Cleaning', 10, 3) #4 /home/avcorp/vhosts/pubvps/podio_rmticket/poll/rmticket_poll.php(54): test_task_creation() #5 {main} thrown in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//  $tasks = PodioTask::get_all(array(
//      'grouping' => 'reference',    
//      'reference' => 'rmticket:' . $rmt->item_id,
//  ));
  // Fatal error: Uncaught PodioBadRequestError: "Invalid value "rmticket" (string): must be one of {'comment', 'rating', 'invoice', 'campaign', 'app_revision', 'app', 'share', 'system', 'hook', 'tag', 'voucher', 'file', 'flow_effect', 'vote', 'partner', 'message', 'conversation', 'share_install', 'form', 'space_member_request', 'space', 'notification', 'auth_client', 'question', 'integration', 'payment', 'subscription', 'live', 'label', 'answer', 'icon', 'location', 'status', 'org_member', 'widget', 'extension_installation', 'file_service', 'app_field', 'alert', 'profile', 'user', 'task_action', 'org', 'condition_set', 'embed', 'condition', 'space_member', 'identity', 'item_participation', 'task', 'extension', 'linked_account', 'grant', 'flow', 'batch', 'contract', 'project', 'item', 'connection', 'flow_condition', 'question_answer', 'action', 'item_revision', 'voting', 'promotion', 'bulletin', 'view' in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

//  $tasks = PodioTask::get_all(array(
//      'grouping' => 'reference',    
//      'reference' => $rmt->item_id,
//  ));
  // Fatal error: Uncaught PodioBadRequestError: "Expected references on the form type:id" Request URL: http://api.podio.com/task/?grouping=reference&reference=720406510 Stack Trace: #0 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php(349): Podio::request('GET', '/task/', Array, Array) #1 /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/models/PodioTask.php(100): Podio::get('/task/', Array) #2 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(255): PodioTask::get_all(Array) #3 /home/avcorp/vhosts/pubvps/podio_rmticket/rmticket_util.php(152): rmtCreateTask(Object(AvcPodioItem), 'Carpet Cleaning', 10, 3) #4 /home/avcorp/vhosts/pubvps/podio_rmticket/poll/rmticket_poll.php(54): test_task_creation() #5 {main} thrown in /home/avcorp/vhosts/pubvps/vendor/podio/podio-php/lib/Podio.php on line 289

最后一个是最接近的,但正如您所见,虽然我不能发送“参考”=> type:id 它似乎 require 它。 这是 Podio 的 API 中的错误吗?

-- 安德鲁。

【问题讨论】:

    标签: podio


    【解决方案1】:

    终于弄明白了(不感谢 Podio 文档)。 这有效:

    $tasks = PodioTask::get_all(array(
        'grouping' => 'reference',    
        'reference' => 'item:' . $rmt->item_id,
    ));
    

    显然,他们正在寻找的“类型”不是项目的类型,而是可能的“参考”类型列表之一。当然,这可能已经记录在案,但是与 Podio 的许多 API 文档一样,他们有很多文档,但其中大部分只是顶级“基本”文档,细节很少,而且有很多“挥手”......郁闷...

    【讨论】:

    • 很抱歉,如果 Podio 文档看起来不是很干净。请随时提出改进建议,Podio 开发团队肯定会对其进行审核并可能会添加它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多