We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.
Forum Discussion
icefishandrew
2 years agoExplorer | Level 3
Get all shared links for a file
I have a .net app that needs to get all of the shared links for a particular file. The only way I can see to do this is to:
Get a DropboxTeamClient with "team_info.read", "team_data.member", "gr...
- 2 years ago
An access token is just a string, so you could technically transmit it using whatever communication mechanism you wish. If you give the access token string, which was created by authorization from an admin, to a non-admin user, they could then technically run the same code to make a DropboxTeamClient, list groups, list members, operate as members, and list shared links.
That wouldn't be recommended though, as a matter of security, as a team-linked access token like that enables access that a non-admin doesn't have.
Greg-DB
Dropbox Staff
When using any "team" scopes, the app can only be authorized by a team admin, because it would be connected to the entire team, not just a particular account.
If you just want to connect to a particular account, you can disable any team scopes, so that it can be authorized by non-admins. Access tokens/refresh tokens without the team scopes will be specific to the particular account (Business or not) and so would not require you to get a member ID and use AsMember; you would instead make a DropboxClient directly (not a DropboxTeamClient).
For reference, the ListSharedLinksAsync method requires the 'sharing.read' scope, which isn't a team scope. You can find more information on scopes in the OAuth Guide.
If you don't need to call any team endpoints (e.g., if you just need to call user methods, such as ListSharedLinksAsync), I recommend this solution instead for simplicity and security.
icefishandrew
2 years agoExplorer | Level 3
Thanks Greg.
Is there a way to get all of the shared links that exist for a file, without using the DropboxTeamClient? If I only have a DropboxClient for the current user, I can only see the shared links for a file for that user, correct?
- Greg-DB2 years agoDropbox Staff
Yes, if you have a DropboxClient you can call ListSharedLinksAsync to list the shared links for that file for only that user. If you only need to list all of the shared links for that file for that particular user, that would work.
If you need to be able to list all shared links for a file across all members of the team though, you would need to use the team scopes and start with the DropboxTeamClient, as that's how you would get access to all team member accounts, and call for each member. In that case, you don't need to have each member authorize the app themself though, as the single authorization from a team admin would grant access to the entire team.
- icefishandrew2 years agoExplorer | Level 3
Yes, I'm trying to list all shared links for a file across all members of the team. I guess the part I'm stuck on then is how to get the DropboxTeamClient for a non-Admin user. What oauth2accessToken would I use to create a new DropboxTeamClient?
- Greg-DB2 years agoDropbox Staff
You cannot get a DropboxTeamClient based on a non-admin's authorization. To get a DropboxTeamClient, you would need to use team scopes and have an admin authorize the connection. Since using team scopes means the connection would be able to access the entire team and perform team-level operations, only a team admin is able to perform that authorization.
When using team scopes and having a team admin authorize the app, the resulting access token is connected to the team itself and can be used to get a DropboxTeamClient. If you need to operate on all team member accounts (whether the members are admins or not) without having each member individually authorize the app, that would be the right process to follow. That would only need to be authorized by an admin once.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,877 PostsLatest Activity: 12 months 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!