cancel
Showing results forĀ 
ShowĀ Ā onlyĀ  | Search instead forĀ 
Did you mean:Ā 
Announcements
Want to learn some quick and useful tips to make your day easier? Check out how Calvin uses Replay to get feedback from other teams at Dropbox 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:Ā 

Re: Eroor 400 when using the Dropbox choose API

Eroor 400 when using the Dropbox choose API

jasskcet
Explorer | Level 3
Go to solution

Hi,

I am trying to consume the Dropbox choose API as from the below link:

https://www.dropbox.com/developers/chooser

However, when the chooser window is shown, it ends up with error 400.

400 error for chooser API.png

 

Kindly advise on what went wrong. 

1 Accepted Solution

Accepted Solutions

DBX_Robert
Dropbox Staff
Go to solution

We do not currently include the MIME type in the response from metadata returned by the Chooser.  I have filed this as a feature request for the Chooser.

In cases where the returned file name includes a file extension, is it possible to infer the MIME type from the file extension?

View solution in original post

15 Replies 15

Greg-DB
Dropbox Staff
Go to solution

[Cross-linking for reference: https://stackoverflow.com/questions/52756880/error-400-while-using-dropbox-chooser-api ]

Can you share the full URL of that page that's showing the 400 error? That would help us look into this. Thanks in advance! 

dolphin-newbie
Explorer | Level 3
Go to solution

Hi

I'm getting the same error, and here is the full URL 
https://www.dropbox.com/chooser?origin=https%3A%2F%2Fhttp://a9b7088a.ngrok.io&app_key=0ro4ue0jd0uqghq&link_type=preview&trigger=button&multiselect=false&extensions=&folderselect=false&iframe=false&version=2

Greg-DB
Dropbox Staff
Go to solution

@dolphin-newbie It looks like the issue is that you don't have the domain you're running from pre-registered as a Dropbox Chooser/Saver domain on the app's page on the App Console. You need to pre-register the domain(s) you'll be using your app key on so that other people can't use your app key on their own sites.

In this case, you'd want to register 'a9b7088a.ngrok.io'. To do so, go to the App Console, click on the app with app key '0ro4ue0jd0uqghq', and enter 'a9b7088a.ngrok.io' under "Chooser/Saver domains".

jasskcet
Explorer | Level 3
Go to solution

Greg,

Here is the URL 

https://www.dropbox.com/chooser?origin=https%3A%2F%2Fd0aapangw01.hrpsdev.local%3A44303&app_key=vpukr...

One more thing, currently I have embedded the code from the below link locally onto my application(Is it ok to do that?). We wouldn't be using HTML to embed the script. 

https://www.dropbox.com/static/api/2/dropins.js

 Hence is there any other way to pass the app key. 

Greg-DB
Dropbox Staff
Go to solution

@jasskcet That URL isn't currently returning a 400 for me, so it sounds like you already managed to get that sorted out. (E.g., by registering the domain, like in my last comment.)

Also, we don't recommend copying and embedding your own copy of dropins.js, as then you won't get any updates we make to it.

Finally, it is technically possible to set the app key programmatically like this:

Dropbox.appKey = "APP_KEY";

That's not documented though, so it shouldn't be considered officially supported.

 

dolphin-newbie
Explorer | Level 3
Go to solution

Thanks for the reply @Greg . I actually do have the server domain specified.Thanks for the reply @Greg . I actually do have the server domain specified.

Greg-DB
Dropbox Staff
Go to solution

@dolphin-newbie Taking a closer look at the sample URL you shared, I see your 'origin' value is actually "https%3A%2F%2Fhttp://a9b7088a.ngrok.io", which decodes to "https://http://a9b7088a.ngrok.io".

That's not valid, as it contains two protocols (both "https://" and "http://") for some reason. Can you check that you have a valid URL with just one protocol for the page where you're hosting your Chooser integration?

jasskcet
Explorer | Level 3
Go to solution

@Greg-DB Yes i understand. I have one more question. After creation of an app and obtaining the App Key, we are using this app key in js. When the application is loaded in browser, the app key will be visible to the end user. Does this pose any threat or is this a security loophole since anyone would be able to use this app key.

Secondly, once I  choose the document using chooser API, I am able to get the link from metadata of the document. If I need the data of the document as binary, how can I achieve this?. 

Greg-DB
Dropbox Staff
Go to solution

[Cross-linking for reference: https://stackoverflow.com/questions/52756880/error-400-while-using-dropbox-chooser-api?noredirect=1#... ]

@jasskcet No, app keys are not considered secret or sensitive, so it's acceptable (and necessary) to expose them to end-users. Use of your app key with the Dropbox Chooser/Saver is protected by the Chooser/Saver domain pre-registration requirement.

If you want to download the file content for the file selected in the Dropbox Chooser, you can do so by using the "direct" link type, and then downloading the content directly from the URL supplied in the "link" property returned in the response.

Need more support?