Your workflow is unique 👨💻 - tell us how you use Dropbox here.
Forum Discussion
Lukag
1 year agoCollaborator | Level 8
Access dropbox file - Authentication failed because the remote party has closed the transport stream
i'm new in this type of access. I wrote this code but i have the error in objet to recover the list of files in dropbox. Dim token As String token = "sl.B6........." Dim _command As String _co...
Lukag
1 year agoCollaborator | Level 8
I thought that the token was quite alway the same.
So.. the first step i must autenticate the app / user by this :
https://www.dropbox.com/oauth2/authorize?client_id=<APP_KEY>&response_type=code
After i use https://api.dropboxapi.com/oauth2/token
Example: code flow access token request
Right ?
Здравко
1 year agoLegendary | Level 20
@Lukag Try read again the thread I linked to. There have been all steps shown. That you have posted is the thing you don't need encoded mandatory - i.e. execute by hand single time only outside your application. The last step, you skipped above, is mandatory to reside in your code. It may generate new access tokens whenever needed. I don't know how to say it more clear!
- Здравко1 year agoLegendary | Level 20
Yes.
- Lukag1 year agoCollaborator | Level 8
ok .. i'm doing all steps
when i do
curl https://api.dropbox.com/oauth2/token -d code=<received code> -d grant_type=authorization_code -u <App key>:<App secret>
answer me that u is ambiguos
- Lukag1 year agoCollaborator | Level 8
chooses : -UseBasicParsing -Uri -UseDefaultCredentials -UserAgent
- Здравко1 year agoLegendary | Level 20
It is not mandatory you use curl command. You can use any other, but of course should adapt the params. Not all command have the same params set! My example (and not only) uses original curl command, not aliases that point to something else. Check what your alias points to. It looks like some shell' internal redirection that confuses you. Try another shell.
- Lukag1 year agoCollaborator | Level 8
i downloaded curl.
Now i have two token and the second one never expire. Right ? id' like use always it 🙂
- Здравко1 year agoLegendary | Level 20
refresh token doesn't expire. The tokens (and the JSON at all) are not ordered, so I don't know is it second one or not (better don't rely). Navigate on base of the field name.
- Lukag1 year agoCollaborator | Level 8
ty very very much.
- Lukag1 year agoCollaborator | Level 8
Good morning,
a clarification : the refresh token must be used just to obtain a new token or i can use it to obtain data ( like in /list_folder ) ?
- Lukag1 year agoCollaborator | Level 8
ok i hope to use the token refrecsh that don't expire to access data. Ok i'll generate a new one. Ty
- Здравко1 year agoLegendary | Level 20
I hope you have heard about Object Oriented Programming (OOP). It's not matter of OOP language in usage! The language makes the things easier, but it's only a predispose - it doesn't make your code object oriented automatically. Actually, you can use procedure oriented programing language (for instance) and follow object orientation (and opposite) - nothing prevents it. Why am I saying this?
You can (if you want) encapsulate functionality about credentials in a type named... let's say "Credentials". This type may contain everything needed like application key, application secret, refresh token, current access token, and expiration moment of the current access token. Also the same type may has one public property letting access to valid access token that you need each time a regular API call is going to be maid. Every time that property gets accessed, the property getter may check if the current access token is still valid (with some reserve - 3~5 mins). If it is, the current access token is passed back immediately - it is just valid. If it is not (the token expiration moment has passed and the token is expired), refresh step is performed (as discussed already) in the getter. Once the refresh call succeeds, the new expiration moment is calculated (current moment plus validity period) and saved accordingly for future use (comparison) together with the just received access token. At the end, getter returns with the new valid (again) access token.
Following this rule will make you code clear and simple.
This is OOP - functionality encapsulation and reuse. 😉
About Dropbox API Support and Feedback
Get help with the Dropbox API from fellow developers and experts.
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!