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

Reshma 's avatar
Reshma
Explorer | Level 3
3 years ago

is there any Java sdk method to generate access token on the run by taking app key and app secret??

Hello Dropbox team,


As Access token is expiring every 4 hours, we have to regenerate them every 4 hrs. This is becoming difficult to update the access code in my script manually. I'm looking for a Java SDK method that generate access token automatically every 4 hours by taking app key/app secret as input parameters. Could you suggest any sdk method or code sample that I can use to generate access token on the run in my script using app key/app secret. 

Any help would be highly appreciated !!

  • Hi again Reshma ,

    Seems you have misunderstood me. You can't just place one type of token where other type is expected! In Java SDK a DbxCredential object should be used as a proxy (don't ask me why) for refresh token.

    Hope it's a bit more clear now.

  • Здравко's avatar
    Здравко
    Legendary | Level 20

    Hi Reshma ,

    Every supported SDK do this automatically byself (without any additional method/function call). You just have to initialize your client object using refresh token instead of access token. 😉 That's it.

    Hope this helps.

    • Reshma 's avatar
      Reshma
      Explorer | Level 3

      Thanks for the suggestion. I have created a Refresh token using this curl

      curl https://api.dropbox.com/oauth2/token -d code=<receivedcode>-d grant_type=authorization_code -u <Appkey>:<Appsecret>

      Then I have initialized/created drop box client object with Refresh token in place of access token

       

      private static final String REFRESH_TOKEN = "<REDACTED_REFRESH_TOKEN> -u <REDACTED_APP_KEY>:<REDACTED_APP_SECRET>";

       

      // Create drop box client

      DbxRequestConfig config = DbxRequestConfig.newBuilder("dropbox/AppToCreateIT's").build();
      DbxClientV2 client = new DbxClientV2(config, REFRESH_TOKEN);

       

      But unfortunately this dint work, it is throwing below error
      Invalid authorization value in HTTP header "Authorization": "Bearer <REDACTED_REFRESH_TOKEN> -u <REDACTED_APP_KEY>:<REDACTED_APP_SECRET>". Expecting "Bearer <oauth2-access-token>".

       

      pardon If my understanding is wrong , could you please guide me with the exact steps to be followed? 

      I have taken the below reference to create dropbox client. instead of access token I have used refresh token as per your suggestion

      GitHub - dropbox/dropbox-sdk-java: A Java library for the Dropbox Core API.

      • Здравко's avatar
        Здравко
        Legendary | Level 20

        Hi again Reshma ,

        Seems you have misunderstood me. You can't just place one type of token where other type is expected! In Java SDK a DbxCredential object should be used as a proxy (don't ask me why) for refresh token.

        Hope it's a bit more clear now.

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,882 PostsLatest Activity: 27 minutes ago
325 Following

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!