We're making changes to the Community, so you may have received some notifications - thanks for your patience and welcome back. Learn more here.

Forum Discussion

toki4004's avatar
toki4004
Helpful | Level 5
2 years ago

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.

  • Здравко's avatar
    Здравко
    Legendary | 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-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    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.

    • toki4004's avatar
      toki4004
      Helpful | 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 0

      Is 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"

      Greg-DB

      • Здравко's avatar
        Здравко
        Legendary | 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. 🙋

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,875 PostsLatest Activity: 2 months ago
325 Following

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 or Facebook.

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!