You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
sr_c
2 years agoExplorer | Level 3
Unable to Retrieve a new short-lived access token through Javascript
Hello,
I followed the approach described in below post to get refresh token
Through Javascript I am trying to get new short lived access token (step 7 in above post) using below code, but I am getting error as given below
-->"error": "invalid_request", "error_description": "The request parameters do not match any of the supported authorization flows. Please refer to the API documentation for the correct parameters."
If I tried the same through Postman I am able to get the access token.
My javascript code is given below
--------------------------------------------------------
let tokobj = {
"refresh_token" : <My refresh token obtained using above approach>,
"grant_type" : "refresh_token",
"client_id" : <my app key>,
"client_secret" : <my app secret>
}
let tokenOptions = {
method: "POST",
headers: {
"Content-Type" : "application/json"
},
body: JSON.stringify(tokobj)
}
const tokenResults = await fetch(reftokendpoint, tokenOptions);
const tokenPost = await tokenResults.text();
console.log('Exec status', tokenPost)
------------------------------------------------------------------------------------
Please suggest how this can be resolved
Thanks
That would change the "Content-Type" request header value that you send, but you need to also make sure the value you're sending in the body actually uses that format. That is, you should be formatting the parameters accordingly, not using JSON.stringify. For example, you may want to use URLSearchParams, or whatever functionality you prefer and have available for formatting the parameters accordingly.
- Greg-DBDropbox Staff
The parameters for the /oauth2/token endpoint should be sent as 'application/x-www-form-urlencoded' POST parameters, not JSON. I see your code is sending them as JSON so the API does not receive them and so the operation fails with that error. Please update your code to send the parameters using the 'application/x-www-form-urlencoded' format.
- Greg-DBDropbox Staff
That would change the "Content-Type" request header value that you send, but you need to also make sure the value you're sending in the body actually uses that format. That is, you should be formatting the parameters accordingly, not using JSON.stringify. For example, you may want to use URLSearchParams, or whatever functionality you prefer and have available for formatting the parameters accordingly.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,877 PostsLatest Activity: 10 hours agoIf 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!