We Want to Hear From You! What Do You Want to See on the Community? Tell us here!

Forum Discussion

Oleks's avatar
Oleks
Explorer | Level 4
3 years ago
Solved

Unable to update access token in postman.

  • I have a post here showing the basic flow of getting and using a refresh token to retrieve new short-lived access tokens on demand which may be helpful.

5 Replies

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

    I see you're trying to call the /2/auth/token/from_oauth1 endpoint. If this is a new integration, you should not be using that endpoint. This endpoint is only meant for use if you have pre-existing OAuth 1 access tokens, and the oauth1_token and oauth1_token_secret parameters would refer to the old OAuth1 access token key and secret, not your client ID and secret. This endpoint should not be used as part of the current OAuth 2 app authorization flow.
     
    OAuth 1 access tokens were a feature of an old version of the Dropbox API. If you've only used API v2 and OAuth 2, you wouldn't have any OAuth 1 access tokens. If you don't have pre-existing OAuth 1 access tokens, for instance, if you're just developing the integration now, you should send the user through the normal OAuth 2 app authorization flow.
     
    You can find information on how this works in the OAuth Guide and authorization documentation

  • Oleks's avatar
    Oleks
    Explorer | Level 4
    3 years ago

    Thanks a lot! It would be great to guide how to request a new access token for Oauth2. 

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

    I have a post here showing the basic flow of getting and using a refresh token to retrieve new short-lived access tokens on demand which may be helpful.

  • Oleks's avatar
    Oleks
    Explorer | Level 4
    3 years ago

    I did it, works perfectly fine. However, looking for a way not to use the terminal. I would love to automate that process. Here is my code: 

    const encodedToken = Buffer.from("<client_key>:<client_secret>").toString('base64');

    pm.sendRequest({
    method: 'POST',
    header: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization': `Basic ${encodedToken}`
    },
    }, function (err, res) {
    console.log(res)
    return pm.environment.set("OAuth_Token", res.json().access_token);
    });
  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    3 years ago

    The sample in my post happens to use curl on the command line, but exactly what network client you use is up to you, depending on your use case, environment, etc.

     

    I can't offer help with the third party network clients themselves, but looking at that code, it seems you're missing the rest of the parameters for the /oauth2/token call, such 'grant_type', and 'refresh_token' or 'code', as applicable. You'll need to refer to the documentation and examples to translate that for your network client.

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.6,037 PostsLatest Activity: 5 hours ago
412 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!