Need to see if your shared folder is taking up space on your dropbox 👨💻? Find out how to check here.
Forum Discussion
Omri1984
4 years agoExplorer | Level 4
Access token not beeing refreshed automatically
my application support old dropbox and the new one. when creating the client i am creating it like this client = new DropboxTeamClient(request.AccessToken, request.RefreshToken,request.Expires,Cl...
Omri1984
4 years agoExplorer | Level 4
i an not understand and will need more assistance.
in my up i am always using the DropboxTeamClient creating it with all the necessary parameters
like this.
var client = new DropboxTeamClient(request.AccessToken, request.RefreshToken, request.Expires, ClientId, ClientSecret);
now after that i am checking if the client is in the new space or the old one
like this
var account = await client.AsMember(request.AsMember).Users.GetCurrentAccountAsync();
var spaceclient = client.AsMember(request.AsMember).WithPathRoot(new PathRoot.Root(account.RootInfo.RootNamespaceId));
if (account.RootInfo.IsTeam)
{
metadata = await spaceclient.Files.ListFolderAsync(folderId);
}
else
{
metadata = await client.AsMember(request.AsMember).Files.ListFolderAsync(folderId)
}
now sometimes i need to call this
client.Team.MembersListAsync().ConfigureAwait(false);
and befoe every call i am calling the
var client = new DropboxTeamClient(request.AccessToken, request.RefreshToken, request.Expires, ClientId, ClientSecret);
and I need it because that sometimes i am handing for the same client al the data content and all the user and groups as well
and my issue is that after the token is expire i am getting the error that was in the first message .
400 error
i am really need to get to the bottom of this and understand is completely
Thank you
Greg-DB
Dropbox Community Moderator
4 years agoOmri1984 It sounds like there's an issue with the credentials you're supplying, so trying the call outside of the SDK as Здравко suggested should be a useful test.
- Omri19844 years agoExplorer | Level 4
I added some logs to check my cred during the running .
I will update here, it holiday now so in a few days ,
thanks for the help.
by the way.
if create a new DropboxTeamClient(request.AccessToken, request.RefreshToken,request.Expires,ClientId,ClientSecret);
can I call those methods
var account = await client.AsMember(request.AsMember).Users.GetCurrentAccountAsync();
var spaceclient = client.AsMember(request.AsMember).WithPathRoot(new PathRoot.Root(account.RootInfo.RootNamespaceId));
if (account.RootInfo.IsTeam)
{
await spaceclient.Files.ListFolderAsync(folderId)}
await client.Team.MembersListAsync()
await client.AsMember(request.AsMember).Files.ListFolderAsync(folderId)
and another question ,When using the .Net SDK when is the refresh token is happening?
does it happen for every method ?
does it happen when creating the client (new DropboxTeamClient(request.AccessToken, request.RefreshToken,request.Expires,ClientId,ClientSecret);)
Thank you
- Здравко4 years agoLegendary | Level 20
Omri1984 wrote:...
by the way.
if create a new DropboxTeamClient(request.AccessToken, request.RefreshToken,request.Expires,ClientId,ClientSecret);
can I call those methods
var account = await client.AsMember(request.AsMember).Users.GetCurrentAccountAsync();
...Hi Omri1984,
Overall idea is correct (only representation change 😉); you may need to check your syntax, etc in your end variant. Additional optimization can be done as "cache" your 'representation' , if in particular limited place multiple calls need to be performed sequentially (less objects construct/destruct -> will left one representation construct at beginning and one destruct at the end).
Omri1984 wrote:...
and another question ,When using the .Net SDK when is the refresh token is happening?
does it happen for every method ?
...
Yes and No. On every method call, SDK (all of them - not only .Net) check if current access token exists and its validity. That's what's done mandatory. If there is not available access token or it's going to expire (or already expired), refresh gets performed (which means once on every 4 hours roughly, if you use your code continuously).
Omri1984 wrote:...
does it happen when creating the client (new DropboxTeamClient(request.AccessToken, request.RefreshToken,request.Expires,ClientId,ClientSecret);)
...
No, it doesn't happen on client object creation time, but on methods execution (as I mentioned above). Warning: on client object creation, the state is reset, which means almost mandatory first call will need to refresh the token! As mentioned something meaningless. That's why it's not good idea to create client object continuously for every call, cosa the call gonna be forced to refresh (not the object construction itself). ".Net" SDK implementation doesn't provide currently some way to keep current state (like Java SDK or Python SDK). That's why the last state can't be restored (without some hacks/patches). Seems like a design bug. Let's hope this bug will be fixed.
Hope it's a bit more clear now.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
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!