2

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
      ]
   }
}
Billal Begueradj
  • 20,717
  • 43
  • 112
  • 130
MarlZ15199
  • 288
  • 2
  • 17

1 Answers1

0

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

Jay Dee
  • 71
  • 5
  • Hi Jay, thanks for your answer! I thought I already done that on this line `$item->fields[$field_id]` – MarlZ15199 Jan 01 '17 at 12:46
  • @MarlZ15199, your `dashboard-link-2` does not have a `embed_id`. Is that the problem? – Jay Dee Jan 01 '17 at 14:42
  • It has, I'm getting a result on that If I use filterbyitemid function, if I used filterbyappID, I'm not getting any result. I tried the code you provided which is below. It didn't work got an error `Undefined property: PodioItemCollection::$fields`. `$items = PodioItem::filter($app_id); $field_id = 'dashboard-link-2'; foreach ($items->fields as $field) { if ($field->external_id == "dashboard-link-2") { $collection = $field->values; } }` – MarlZ15199 Jan 01 '17 at 14:58
  • Doesn't seem to work, I get the error: Undefined property: PodioItemCollection::$fields – Drace Oct 09 '20 at 12:13