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
manishkanwaria
2 years agoNew member | Level 2
Generate access token without client interaction using Dropbox SDK (C# Api Project)
Hi Folks,
I have a C# API project which has a service that downloads video assets from different sources, i.e., Azure Blob, AMS, and other client environments.
The new client came in with Dro...
- 2 years ago
If you need long-term access, you'll need to use the OAuth app authorization flow, but this only needs to be done once per account. It is not possible to fully automate the OAuth process where the user chooses to authorize the app and the app then receives the resulting access token and optional refresh token. This needs to be done manually by the user at least once.
If your app needs to maintain long-term access without the user manually re-authorizing it repeatedly, the app should request "offline" access so that it gets a refresh token. The refresh token doesn't expire and can be stored and used repeatedly to get new short-lived access tokens whenever needed, without the user manually reauthorizing the app.
You can find more information in the OAuth Guide and authorization documentation. There's a basic outline of processing this flow in this blog post which may serve as a useful example.When you use the official Dropbox API v2 .NET SDK, you do not need to implement all of the code for the OAuth flow yourself. The SDK will do most of the work for you. You can find examples of using this here. If this is only for your own account, you can also opt to perform the OAuth app authorization flow manually once, e.g., as shown in the post linked in my previous paragraph, and plug that in to the .NET SDK. The SDK will handle the refresh process for you when you supply the necessary credentials: the refresh token, app key, and if not using PKCE, app secret.
Greg-DB
Dropbox Staff
If you need long-term access, you'll need to use the OAuth app authorization flow, but this only needs to be done once per account. It is not possible to fully automate the OAuth process where the user chooses to authorize the app and the app then receives the resulting access token and optional refresh token. This needs to be done manually by the user at least once.
If your app needs to maintain long-term access without the user manually re-authorizing it repeatedly, the app should request "offline" access so that it gets a refresh token. The refresh token doesn't expire and can be stored and used repeatedly to get new short-lived access tokens whenever needed, without the user manually reauthorizing the app.
You can find more information in the OAuth Guide and authorization documentation. There's a basic outline of processing this flow in this blog post which may serve as a useful example.
When you use the official Dropbox API v2 .NET SDK, you do not need to implement all of the code for the OAuth flow yourself. The SDK will do most of the work for you. You can find examples of using this here. If this is only for your own account, you can also opt to perform the OAuth app authorization flow manually once, e.g., as shown in the post linked in my previous paragraph, and plug that in to the .NET SDK. The SDK will handle the refresh process for you when you supply the necessary credentials: the refresh token, app key, and if not using PKCE, app secret.
manishkanwaria
2 years agoNew member | Level 2
Hi Greg-DB,
Thank you for your valuable feedback. Your suggested way really helped :). I am successfully able to generate an access token from the auth code retrieved from the redirect URL through offline mode. I am also glad to hear that the refresh token doesn't expire and can be used to generate short-lived access tokens.
The Dropbox client is also initialised successfully; however, now I am running into access problems to the video asset.
I have created an app under the app console with the App Folder option. I could see a folder being created as App/MyFolder. However, when I try to download using the below code, I get an exception stating "path/not_found/"
using (var response = await dbx.Files.DownloadAsync("//Apps//MyFolder//VID20230902073536.mp4"))
Please correct me if I am doing anything wrong.
Thanks.
- Здравко2 years agoLegendary | Level 20
Hi manishkanwaria,
You may try with:
var response = await dbx.Files.DownloadAsync("/VID20230902073536.mp4")
Does it works? 🤔😉
Hope this helps.
- manishkanwaria2 years agoNew member | Level 2
Hi @Здравко,
Awesome :). This was the very first option I tried, not sure why It did not work in first place, may be I did something wrong there. Thanks for your help it worked now.
- Здравко2 years agoLegendary | Level 20
Hm.. 🤔 Did you set single or double slashes when you tried for very first time and it didn't worked? 🧐🙂
Hope this reveals the 'mystery'. 😉
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,883 PostsLatest Activity: 2 hours 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!