PODIO php API call, get array offset of all item fields value using filter by app ID

1.1k views Asked by At

I'm new in API thing, I'm using PHP CLient of PODIO link here, I want to get all fields value of all items.

The code below is not working, but if I used PodioItem::get_basic(item_id), this work to get item related values but I want to get all fields value of all items so I used filter by app ID, I'm getting an error Undefined property: PodioItemCollection::$fields

<?php 

require_once '/PodioAPI.php';

$client_id = "xxxx";
$client_secret = "xxxx";
$app_id = xxxx;
$app_token = "xxxx";

Podio::setup($client_id, $client_secret);
Podio::authenticate_with_app($app_id, $app_token);

$item = PodioItem::filter($app_id);
$field_id = 'dashboard-link-2';
$collection = $item->fields[$field_id]->values;

foreach ($collection as $embed) {
  print "Embed id: ".$embed->embed_id."<br>";
  print "Embed URL: ".$embed->original_url."<br>";
}

Here's the full response in 2 items available in APP on JSON format using print $item->as_json(true). I want to do for each in all fields and their value on the last part of JSON.

{  
   "item_id":535780740,
   "title":"test",
   "link":"https:\/\/podio.com\/trackzen\/",
   "rights":[  
      "view",
      "comment",
      "rate",
      "add_task",
      "add_file",
      "update",
      "add_conversation",
      "subscribe"
   ],
   "created_on":"2016-12-26 05:58:59",
   "app_item_id_formatted":"2",
   "app_item_id":2,
   "ratings":{  
      "like":{  
         "average":null,
         "counts":{  
            "1":{  
               "total":0,
               "users":[  

               ]
            }
         }
      }
   },
   "last_event_on":"2016-12-30 10:47:34",
   "comment_count":3,
   "created_by":{  
      "type":"user",
      "id":3584284,
      "avatar_type":"file",
      "avatar_id":250835059,
      "image":{  
         "hosted_by":"podio",
         "hosted_by_humanized_name":"Podio",
         "external_file_id":null,
         "link_target":"_blank"
      },
      "name":"Marlon"
      "url":"https:\/\/podio.com\/users
      "avatar":250835059
   },
   "created_via":{  
      "id":1,
      "auth_client_id":1,
      "name":"Podio",
      "display":false
   },
   "initial_revision":{  
      "created_on":"2016-12-26 05:58:59",
      "created_by":{  
         "type":"user",
         "id":3584284,
         "avatar_type":"file",
         "avatar_id":250835059,
         "image":{  
            "hosted_by":"podio",
            "hosted_by_humanized_name":"Podio",
            "file_id":250835059,
            "external_file_id":null,
            "link_target":"_blank"
         },
         "name":"Marlon",
         "url":"https:\/\/podio.com\/users\/",
         "avatar":250835059
      },
      "created_via":{  
         "id":1,
         "auth_client_id":1,
         "name":"Podio",
         "display":false
      }
   },
   "current_revision":{  
      "revision":13,
      "created_on":"2016-12-30 10:47:34",
      "created_by":{  
         "type":"user",
         "id":3584284,
         "avatar_type":"file",
         "avatar_id":250835059,
         "image":{  
            "hosted_by":"podio",
            "hosted_by_humanized_name":"Podio",

            "external_file_id":null,
            "link_target":"_blank"
         },
         "name":"Marlon",
         "url":"https:\/\/podio.com\/users\",
         "avatar":250835059
      },
      "created_via":{  
         "id":1,
         "auth_client_id":1,
         "name":"Podio",
         "display":false
      }
   },
   "fields":{  
      "title":"test",
      "service":[  
         536114669
      ],
      "dashboard-link-2":[  
         {  
            "embed":156461816,
            "file":null
         }
      ],
      "text":" 
TEST 
<\/p>",
      "action":[  
         1
      ],
      "deliverables":[  
         536600856
      ]
   }
}{  
   "item_id":535312848,
   "title":"Test Dashboard",
   "rights":[  
      "view",
      "comment",
      "rate",
      "add_task",
      "add_file",
      "update",
      "add_conversation",
      "subscribe"
   ],
   "created_on":"2016-12-24 09:25:08",
   "app_item_id_formatted":"1",
   "app_item_id":1,
   "ratings":{  
      "like":{  
         "average":null,
         "counts":{  
            "1":{  
               "total":0,
               "users":[  

               ]
            }
         }
      }
   },
   "last_event_on":"2016-12-28 12:37:26",
   "comment_count":23,
   "created_by":{  
      "type":"user",
      "id":3584284,
      "avatar_type":"file",
      "avatar_id":250835059,
      "image":{  
         "hosted_by":"podio",
         "hosted_by_humanized_name":"Podio",,
         "file_id":250835059,
         "external_file_id":null,
         "link_target":"_blank"
      },
      "name":"Marlon",
      "url":"https:\/\/podio.com",
      "avatar":250835059
   },
   "created_via":{  
      "id":1,
      "auth_client_id":1,
      "name":"Podio",
      "display":false
   },
   "initial_revision":{  
      "created_on":"2016-12-24 09:25:08",
      "created_by":{  
         "type":"user",
         "id":3584284,
         "avatar_type":"file",
         "avatar_id":250835059,
         "image":{  
            "hosted_by":"podio",
            "hosted_by_humanized_name":"Podio",
            "external_file_id":null,
            "link_target":"_blank"
         },
         "name":"Marlon",
         "url":"https:\/\/podio.com\/users\/",
         "avatar":250835059
      },
      "created_via":{  
         "id":1,
         "auth_client_id":1,
         "name":"Podio",
         "display":false
      }
   },
   "current_revision":{  
      "revision":6,
      "created_on":"2016-12-28 12:37:26",
      "created_by":{  
         "type":"user",
         "id":3584284,
         "avatar_type":"file",
         "avatar_id":250835059,
         "image":{  
            "hosted_by":"podio",
            "hosted_by_humanized_name":"Podio",
            "thumbnail_link":"https:\/\/d2cmuesa4snpwn.cloudfront.net\/public\/",
            "link":"https:\/\/d2cmuesa4snpwn.cloudfront.net\/public\/",
            "file_id":250835059,
            "external_file_id":null,
            "link_target":"_blank"
         },
         "name":"Marlon",
         "url":"https:\/\/podio.com\/users\/",
         "avatar":250835059
      },
      "created_via":{  
         "id":1,
         "auth_client_id":1,
         "name":"Podio",
         "display":false
      }
   },
   "fields":{  
      "title":"Test Dashboard",
      "service":[  
         535311650,
         536114669
      ],
      "dashboard-link-2":[  
         {  
            "embed":155910622,
            "file":null
         }
      ],
      "action":[  
         1
      ],
      "deliverables":[  
         535312645,
         535312468,
         535312239,
         535312097,
         535311935,
         536114763,
         536114718
      ]
   }
}
1

There are 1 answers

4
Jay Dee On BEST ANSWER

You'll want to iterate through the fields array to find the field with the external_id equal to what you are looking for. It look like you are looking for the field with external_id == 'dashboard-link-2'

Edit #1 Added example:

$collection = []
foreach ($item->fields as $field) {
  if ($field->external_id == "dashboard-link-2") {
    $collection = $field->values;
  }
}

Edit#2: Had a look at the Docs, my code is for an older/different version of the Library. Sorry