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
OPunktSchmidt
5 years agoExplorer | Level 3
Java SDK - No refresh token?
Hey, i try to get the refresh token with the Java SDK (Android App). I start authentication with this: Auth.startOAuth2Authentication(getContext(), "abc"); And then in onResume: @Ove...
- 5 years ago
The startOAuth2Authentication method uses the old flow, which currently gives legacy "long-lived access tokens", which don't expire by themselves. Note that starting September 30th, 2021 Dropbox will no longer return new long-lived access tokens, so you should switch to the new flow.
The startOAuth2PKCE uses the new flow, which gives "short-lived access tokens", which do expire by themselves, as well as "refresh tokens", which don't expire by themselves.
Greg-DB
Dropbox Staff
You should use the startOAuth2PKCE method instead of startOAuth2Authentication now. You can find an example here:
OPunktSchmidt
5 years agoExplorer | Level 3
Greg-DB wrote:You should use the startOAuth2PKCE method instead of startOAuth2Authentication now. You can find an example here:
Yes, with the startOAuth2PKCE - Method i get a refresh token. Does the authToken with startOAuth2Authentication - Method never expire?
- Greg-DB5 years agoDropbox Staff
The startOAuth2Authentication method uses the old flow, which currently gives legacy "long-lived access tokens", which don't expire by themselves. Note that starting September 30th, 2021 Dropbox will no longer return new long-lived access tokens, so you should switch to the new flow.
The startOAuth2PKCE uses the new flow, which gives "short-lived access tokens", which do expire by themselves, as well as "refresh tokens", which don't expire by themselves.
- OPunktSchmidt5 years agoExplorer | Level 3
Thanks
- marcoalt4 years agoExplorer | Level 4
can you clarify if the only thing I need to do is to set short lived token online in the console, and then use this different authorization method, and the API will take care of it, or if I need to do anything different? I don't understand if I need to store any access token or if I need to make different calls later. Thank you
Normally I check if I have the token, then call:
Auth.startOAuth2Authentication(getActivity(), db_k);
While now I call:
Auth.startOAuth2PKCE(context, db_k, DbxRequestConfig.newBuilder("app")
.withHttpRequestor(new OkHttp3Requestor(OkHttp3Requestor.defaultOkHttpClient()))
.build(), Collections.singleton("files.content.write"));Which gives me a token, that then I store, and re-use the following time and also for the actual operation:
DropboxClientFactory.init(accessToken);
PicassoClient.init(context, DropboxClientFactory.getClient());
DbxClientV2 mDbxClient = DropboxClientFactory.getClient();
mDbxClient.files().uploadBuilder("/"+recordingToExport.getName()+"_Features.csv")
.withMode(WriteMode.OVERWRITE)
.uploadAndFinish(inputStream);How does this code change when using short lived access tokens?
Your documentation on github doesn't seem to use any of this. Please help
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,915 PostsLatest Activity: 6 years agoIf 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!