Need to see if your shared folder is taking up space on your dropbox 👨💻? Find out how to check here.
Forum Discussion
toki4004
3 years agoHelpful | Level 5
Error: property_groups: expected list, got string
I am trying to add property groups to a file with
https://content.dropboxapi.com/2/files/upload
and I am getting an error "HTTP header "Dropbox-API-Arg": property_groups: expected list, got string". How is my property groups a string? What am I doing wrong?
$meta = array(
"name" => "this is something"
);
$fields = array(
"path" => "/ba.txt",
"autorename" => false,
"mode" => "overwrite",
"mute" => false,
"strict_conflict" => false,
"property_groups" => json_encode($meta)
);
$headers = array(
'Authorization: Bearer '.$auth_token,
'Content-Type: application/octet-stream',
'Dropbox-API-Arg: '.json_encode( $fields )
);
toki4004 wrote:..., and now I want to view a folder list with items + see their properties. I get this error:
- "Error in call to API function "files/list_folder": request body: include_property_groups.filter_some: expected list, got string".
- Here is my code below. What format is expecting for "include_property_group"?
...
Even when you have one property group it should be a list with one entry, not just a single string, as you have passed. If you take a look on 'filter_some', you will see that expected type is list, not something else (list of ids, not just one id itself - even when it's alone). Wrap your id' string with array.
16 Replies
Replies have been turned off for this discussion
- Здравко3 years agoLegendary | Level 20
Hi toki4004,
It's a good idea to prototype API call when you are not sure about something. 😉 So you can easy find out all differences and what's wrong. In particular (for /2/files/upload) you can take a look here. Click on "Show Code" to see how the call look like. Most valuable for you may be the "HTTP request" form of view (PHP is not supported).
Good luck.
- Greg-DB3 years ago
Dropbox Community Moderator
toki4004 As Здравко linked to, the API v2 Explorer is a good tool for prototyping and inspecting how API calls should be formatted.
I see in your code you're using json_encode on the property_groups value directly. The value is supposed to be a list, but note that json_encode itself returns a string, you're actually sending that parameter value as a string instead of the expected list. It looks like you could do so by removing that first json_encode call and just supplying the $meta variable itself.
- toki40043 years agoHelpful | Level 5
Thanks, I am a newbie, wondering if you could help:
From the explorer page, I get this error
... "Dropbox-API-Arg": property_groups.template_id: '' must be at least 1 characters, got 0Is the template required? All I am trying to do is save a custom metadata snippet with the file.
I tried removing that first json_encode call and just supplying the $meta variable. Now I get the error:
"... property_groups: expected list, got builtins.dict"
- Здравко3 years agoLegendary | Level 20
toki4004, did you prototype your calls? As seems not yet... Yes, property group is list/array. The elements of this list are dicts. The fields of each element is list also.
Take a bit more care. 🙋
- toki40043 years agoHelpful | Level 5
I am trying to but I get that error 400 - it's asking for template_id. What template is it referring to?
- Greg-DB3 years ago
Dropbox Community Moderator
toki4004 The 'property_groups' parameter on the /2/files/upload endpoint is optional. (You can find that in the documentation for /2/files/upload.) You should only set it if you are using the "file properties" feature. If you do set the 'property_groups' parameter though, the 'template_id' field in any given PropertyGroup object is required and must not be empty.
You can find information on the file properties feature, such as what templates are and how to work with them, in the documentation for it here.
- toki40043 years agoHelpful | Level 5
Where before I was getting en error
property_groups: expected list, got stringnow with this change:
$meta = array( array("cat", "dog") ); $fields = array( "path" => "/ba.txt", "autorename" => false, "mode" => "overwrite", "mute" => false, "strict_conflict" => false, "property_groups" => $meta );I am getting:
property_groups: expected object, got list
So now it's NOT expecting a list...? I am confused on the format that it wants to receive. - toki40043 years agoHelpful | Level 5
Greg-DB Ah, ok, so the template is required. I guess I'll have to set that.
My end goal is to assign a custom meta data to a file/folder. It sounds like I'll need to set template and then deal with that property.
- Здравко3 years agoLegendary | Level 20
Also don't nest lists one in other directly..
- Greg-DB3 years ago
Dropbox Community Moderator
toki4004 The "property_groups: expected object, got list" error is referring to the items in the property_groups list; the items are supposed to be objects of type PropertyGroup, but you're instead supplying a list via `array("cat", "dog")`.
It should look more like this:
$meta = array( array("template_id" => "ptid:TEMPLATEID", "fields" => array(array("name" => "FIELDNAME", "value" => "FIELDVALUE"))) );You'd need to replace the CAPITALIZED values with your actual values of course.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!