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
rs123
3 years agoNew member | Level 2
Getting refresh token for shiny app using rdrop2 and drop_auth()
I'm trying to create a shiny app, using R Studio, which links to my dropbox using the package rdrop2. I have successfully managed to deploy the app and it runs as planned for around 4 hours. Howe...
Greg-DB
3 years agoDropbox Staff
[Cross-linking for reference: https://stackoverflow.com/questions/71393752/get-a-refresh-token-for-dropbox-api-using-rdrop2-and-drop-auth ]
As you found, Dropbox is in the process of switching to only issuing short-lived access tokens (and optional refresh tokens) instead of long-lived access tokens. You can find more information on this migration here. We don't have any resources for R in particular unfortunately.
Apps can still get long-term access by requesting "offline" access though, in which case the app receives a "refresh token" that can be used to retrieve new short-lived access tokens as needed, without further manual user intervention. You can find more information in the OAuth Guide and authorization documentation. Support for refresh tokens would ideally be built in to the "rdrop2" library you're using. That's not made by Dropbox though so I can't offer help with that.
As Здравко noted, while the creation of new long-lived access tokens is now deprecated, we don't currently have a plan to disable existing long-lived access tokens. (If that changes, we will of course announce that ahead of time.) That being the case, you can continue using existing long-lived access token(s) without interruption, if you have any. Also, note though that after the change you won't be able to create new long-lived access tokens.
While the change began on September 30th 2021, we're releasing it gradually, so you may not have seen your app(s) affected until now. Once it applies to your app, it would apply regardless of the "Access token expiration" setting for your app, and that setting may no longer be available for your app.
- rs1233 years agoNew member | Level 2
Thank you for your help.
- TessaP3 years agoNew member | Level 2
My shiny app doesn't work anymore after 4 hrs because of a 'Unauthorized (HTTP 401)'. I read the above tips but there is not enough specific information for me to solve it. I use the key and secret that rdrop2 provides, store it and call it. It would be very helpful if someone can provide code in R to solve this, or provide more information how to request 'offline access' as suggested. The app is intended to enable others (anyone who has the link to the shiny app) to add to a master spreadsheet in dropbox.
- Здравко3 years agoLegendary | Level 20
TessaP wrote:... I read the above tips but there is not enough specific information for me to solve it. I use the key and secret that rdrop2 provides, store it and call it. It would be very helpful if someone can provide code in R to solve this, or provide more information how to request 'offline access' as suggested. ...
Hi TessaP,
I am not familiar with "rdrop2", but since you are posting your question now, seems it's still not updated and refresh token isn't supported there. Can you clarify what kind of "specific information" do you need? 🤔 In above posts, all needed for refresh token support to be implemented, is available. About "how to request offline access", if you used long lived token before, most probably you have done already everything needed and have received 'offline access'. 😉 You have to just find out your received already refresh token and keep it for later use. In addition you have to implement some code that initiate refresh when needed, as described above (that's what missing). Actually, it's a single HTTPS call. If you need more info about how to invoke web calls, take a look on 'httr' documentation (it's a 'curl' wrapper actually).
Hope this gives direction.
Add: The problem is that 'rdrop2' launches default authentication only. By default Dropbox gives short lived access token. All that need fix is here. Try play with 'query_authorize_extra' parameter of 'oauth2.0_token()' (according to Dropbox documentation for /oauth2/authorize).
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,915 PostsLatest Activity: 2 days 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!