cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Are you new to Dropbox? Our Newcomers group is the perfect place to learn the basics, find out more here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Dropbox's code example for sharing a file link in Python not working

Dropbox's code example for sharing a file link in Python not working

cristrod817
Explorer | Level 3
Go to solution
#Python code provided by Dropbox
import requests
import json

headers = {
    "Authorization": "Bearer append-current-token"
"Content-Type": "application/json"
}
data = {
    "path": "/baby dream/Cris Rodriguez/10yrsZ.tif"
}

r = requests.post(url, headers=headers, data=json.dumps(data))
print(r.text)
 
I am getting this error text: 400
 
Error in call to API function "sharing/get_shared_link_metadata":
This function requires its argument in the HTTP request body, but your request body is empty.
 
This is the default code provided by Dropbox which I am trying to implement but to no avail.
I've done my research to no avail.  Need help desperately.
 
I am using VS Code as my editor, Windows 10 latest version, Python 3.10.10



1 Accepted Solution

Accepted Solutions

Здравко
Legendary | Level 20
Go to solution

@cristrod817, as Greg pointed out, 'url' parameter is missing in your request and of course, the error message, you're receiving, notes the same. Take a look once again in the link you post above. There are 3 parameters - 1 mandatory and 2 optional. You have put only one of the optional params. 🙂 Where is the link you want to check metadata for? That's it.

View solution in original post

10 Replies 10

Greg-DB
Dropbox Staff
Go to solution

Can you let me know where you found or received this code so I can check on that?

 

In any case, is this the actual/exact code you're running? When I plug in an access token, and add the missing "," in the 'headers' object that otherwise causes a SyntaxError, I actually get the different error "Error in call to API function "sharing/get_shared_link_metadata": request body: missing required field 'url'" which would be expected in this case for this code, as the /2/sharing/get_shared_link_metadata endpoint requires a 'url' parameter.

cristrod817
Explorer | Level 3
Go to solution

The code was found in Dropbox https://dropbox.github.io/dropbox-api-v2-explorer/#sharing_get_shared_link_metadata

Select View Request as Python Request (Requests Library)

 

and it gives this error:

{
  "error_summary": "shared_link_not_found/",
  "error": {
    ".tag": "shared_link_not_found"
  }
}

Please provide the appropriate code.  Thank you.  The path does exist.  Check my prior replies.

 

 

 

 

 

 

 

 

Здравко
Legendary | Level 20
Go to solution

@cristrod817, as Greg pointed out, 'url' parameter is missing in your request and of course, the error message, you're receiving, notes the same. Take a look once again in the link you post above. There are 3 parameters - 1 mandatory and 2 optional. You have put only one of the optional params. 🙂 Where is the link you want to check metadata for? That's it.

Greg-DB
Dropbox Staff
Go to solution

Thanks for clarifying! That's correct, the /2/sharing/get_shared_link_metadata endpoint does require the 'url' parameter. That endpoint is a way to get information about a Dropbox shared link, so you need to include the Dropbox shared link in the call. The 'path' parameter can additionally be supplied to request information about a particular item relative to the folder, if the shared link itself is for a folder.

 

In my testing, the API v2 Explorer "Python request (requests library)" option for that endpoint is correctly including the 'url' parameter, and likewise I wasn't able to reproduce the original "request body is empty" error with this code, so it sounds like you were using a modified version of that code.

 

Anyway, it looks like you've got this sorted out now, but let us know if you need help with anything else.

cristrod817
Explorer | Level 3
Go to solution

Ok, I have updated the code to include the url parameter within the data = statement.  Now I am getting the same error as the default code provided by Dropbox.  I have included a print statement at the end of the code so I can see the response which is:

 

{"error_summary": "shared_link_not_found/..", "error": {".tag": "shared_link_not_found"}}

The code is identical to that

 

Here's my updated code:

import requests
import json


headers = {
    "Authorization": "Bearer sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx removed",
    "Content-Type": "application/json"
}

data = {
    "path": "/Cris Rodriguez/Baby Dream CSV/Beach Vibes (GO) 6x8 WEB.jpg"
}

r = requests.post(url, headers=headers, data=json.dumps(data))
print(r.text)Default code by DropboxDefault code by DropboxMy Python CodeMy Python CodeError returned by Dropbox CodeError returned by Dropbox Code

Здравко
Legendary | Level 20
Go to solution

@cristrod817, where is your shared link? 🙃 Did you forget what you're trying achieve - to get shared link metadata? You have to provide a shared link with that url field, not just some URL! What actually do you expect to see as metadata for the 'link' you provided? 😁

Hope this gives the next step.

cristrod817
Explorer | Level 3
Go to solution

I am following the exact example provided in The API Explorer.

https://dropbox.github.io/dropbox-api-v2-explorer/#sharing_get_shared_link_metadata

 

I can't provide a share link, I am expecting a share link from Dropbox.  That purpose of this exercise, isn't it?  Or am I missing something?   Can you please provide an example?  I am just following the example code provided by Dropbox.

 

Thank you for responding.

cristrod817
Explorer | Level 3
Go to solution

Здравко
Legendary | Level 20
Go to solution

Ha ha.. 😁 you are trying to evaluate an existing link, not to create a new link. 😉 If you want to create such link take a look here. 😉

Hope this helps.

Need more support?
Who's talking

Top contributors to this post

  • User avatar
    Greg-DB Dropbox Staff
  • User avatar
    Здравко Legendary | Level 20
  • User avatar
    cristrod817 Explorer | Level 3
What do Dropbox user levels mean?