Need to see if your shared folder is taking up space on your dropbox 👨‍💻? Find out how to check here.

Forum Discussion

Fomka_Wyverno's avatar
Fomka_Wyverno
New member | Level 2
2 years ago
Solved

Get Access Token JavaScript in fetch

 

 

            const parameters = {
                'code': params.code,
                'grant_type': 'authorization_code',
                'redirect_uri': window.location.origin,
                'client_id': dataApp.client_id,
                'client_secret': dataApp.client_secret
            }


            console.log(parameters);

            fetch('https://api.dropbox.com/oauth2/token', {
                method: 'POST',
                body: JSON.stringify(parameters)
            }).then(response => console.log(response))
                .catch(error => console.log(`Error in POST: ${error}`));

 

 

 

params.code - this is code when i first redirect to my http in url parameters
window.location.origin - origin url my web-site
dataApp.client_id - Api Key my application
dataApp.client_secret - App secret my application
But when fetching my response 400 - why?

I looked at the curl convenerator in js suggested to do this

 

 

fetch('https://api.dropbox.com/oauth2/token', {
  method: 'POST',
  body: new URLSearchParams({
    'code': params.code,
    'grant_type': 'authorization_code',
    'redirect_uri':  window.location.origin,
    'client_id': dataApp.client_id,
    'client_secret': dataApp.client_secret
  })
});

 

 

But this again not work


  • Greg-DB's avatar
    Greg-DB
    2 years ago

    It looks like you're sending the parameters as JSON, but the /oauth2/token endpoint expects them as application/x-www-form-urlencoded POST parameters, and so your parameters aren't getting read. Update your implementation to send application/x-www-form-urlencoded POST parameters instead.

3 Replies

Replies have been turned off for this discussion
  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    2 years ago

    Check the contents of the response body for that error response. It should contain a more specific error message.

  • Fomka_Wyverno's avatar
    Fomka_Wyverno
    New member | Level 2
    2 years ago

    The request parameters do not match any of the supported authorization flows. Please refer to the API documentation for the correct parameters.


    but I don't understand why if I used all the parameters from the documentation. At the same time, if you do it in сURL, everything will work out well

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

    It looks like you're sending the parameters as JSON, but the /oauth2/token endpoint expects them as application/x-www-form-urlencoded POST parameters, and so your parameters aren't getting read. Update your implementation to send application/x-www-form-urlencoded POST parameters instead.

About Discuss Dropbox Developer & API

Node avatar for Discuss Dropbox Developer & API
Make connections with other developers

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

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!