Cut the Clutter: Test Ignore Files Feature - sign up to become a beta tester here.

Forum Discussion

sr_c's avatar
sr_c
Explorer | Level 3
3 years ago
Solved

Unable to Retrieve a new short-lived access token through Javascript

Hello,

I followed the approach described in below post to get refresh token

https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Get-refresh-token-from-access-token/td-p/596739

 

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 reftokendpoint = "https://api.dropbox.com/oauth2/token";
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.

4 Replies

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    3 years ago

    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.

  • sr_c's avatar
    sr_c
    Explorer | Level 3
    3 years ago

    Hello Greg-DB

    I tried with below, but the error remains same. Not sure where is the issue.

    headers: {
    "Content-Type" : "application/x-www-form-urlencoded"
    }
    Thanks
  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    3 years ago

    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

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.6,039 PostsLatest Activity: 2 days ago
416 Following

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 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!