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

Fomka_Wyverno's avatar
Fomka_Wyverno
New member | Level 2
12 months ago

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
    12 months 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.

  • 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

      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 Staff rankDropbox Staff

        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.