cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
We are making some updates so the Community might be down for a few hours on Monday the 11th of November. Apologies for the inconvenience and thank you for your patience. You can find out more here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Access dropbox file - Authentication failed because the remote party has closed the transport stream

Access dropbox file - Authentication failed because the remote party has closed the transport stream

Lukag
Collaborator | Level 8

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
_command = "https://api.dropboxapi.com/2/files/list_folder"

Dim Request As HttpWebRequest
Request = HttpWebRequest.Create(_command)

Request.Method = "GET"
Request.KeepAlive = True
Request.ContentType = "application/json"
Request.UserAgent = "Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36"
Request.AllowAutoRedirect = True
Request.Headers.Add("Authorization", "Bearer " & token)

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

Dim Response As HttpWebResponse = Request.GetResponse()

32 Replies 32

Lukag
Collaborator | Level 8

I try to read guide and to write code to obtain by code a new token. 

this is the command

https://www.dropbox.com/oauth2/authorize?client_id=.....&response_type=code&token_access_type=offlin...  

is that the right way ? becouse i have error 404 server not found 

 

Здравко
Legendary | Level 20

@Lukag wrote:

... 

this is the command

https://www.dropbox.com/oauth2/authorize?client_id=.....&response_type=code&token_access_type=offlin...  

...


Hm..🤔 What I wrote there is:


@Здравко wrote:

..., open a new browser window and put into address line following:

https://www.dropbox.com/oauth2/authorize?token_access_type=offline&response_type=code&client_id=<App key>

...


Does this sound like a command? 🧐

@Lukag The described there are all steps that you need to take for simplest OAuth flow. There are other options though, but most probably you don't need them, since you want long term access to a fixed account - the yours (correct me if I'm wrong).

The only thing you need to include in your code is the last step there (the one that needs to be repeated every time your access token expires and you need new one). That step is command. The previous steps are executed one time only and most probably you don't need them encoded. You may follow them as described there if only single (your) account needs to be linked. Just take from result the refresh token and also save in your code application key (client id) and application secret (client secret). 😉 That's all. If you're still not sure, the above is NOT command, it's web address that needs to be open in web browser (so the OAuth flow starts)!!!

Hope this sheds a piece of light.

 

PS: Keep in mind that none of credentials need to be exposed to the client web session (that would be security hole)! If you want let client side access, it's better PKCE code flow to get in use and in such a case all steps need to be encoded (so client will be able start OAuth flow and link corresponding account accordingly, not only you). In all cases you will need to avoid exposure of credentials that have nothing to do with particular web session.

Lukag
Collaborator | Level 8

Ok , that was ad address to use in browser 😞 

I understood that now it's better if i generate a new token ( by API )  every time. Is it or not ?

 

 

Здравко
Legendary | Level 20

Hm..🤔 To be honest, I don't understand what you mean. Maybe the actual question should be do you need long term access or not?! This is your design decision though. 😉

If you need a single shot (i.e. something that would be run occasionally) application for your own use only, getting access token every time might be better (and simplest) solution. In all other cases use of some form of OAuth might be better solution (my proposal is the simplest OAuth flow for long term use - it is suitable for server side applications, as your looks like according your description).

The decision is yours.

Lukag
Collaborator | Level 8

My scenario in where by web app my customer look and open his file in dropbox. 

 

Just one form or two, just one user or two. 

I think that token access should be good. However if in future my scenario will change i'll change also my code. 

So , if you agree with me i'll continue on this way .

So i'll need generate a new token every time. Can i do it run time by api ?  

Здравко
Legendary | Level 20

@Lukag wrote:

... Can i do it run time by api ?  


Definitely NO! API cannot self authenticate. 🙂 If that was possible, it would be a big security HOLE.

 

Actually, the refresh step in my description above (that you don't like) does exactly this, but it's different thing. There refresh token is used for authentication (valid refresh token). 😉

Lukag
Collaborator | Level 8

i dont understand some steps.

Duration token is 4 hours, if generate now and tomorrow i'll use it in my app , the server'll answer me that token in expired / invalid . So should i refhresh by Api ? 

Здравко
Legendary | Level 20

Do you understand that there are different tokens? 🧐

 


@Lukag wrote:

...

Duration token is 4 hours, if generate now and tomorrow i'll use it in my app , the server'll answer me that token in expired / invalid ...


What token do you take in mind above? 🤔

Read again entire thread here and linked resources. 👆 Don't jump over!

Lukag
Collaborator | Level 8

I understood the nonsense I was saying, I continue to study. Thank you

Lukag
Collaborator | 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 ? 

 

Need more support?
Who's talking

Top contributors to this post

  • User avatar
    Здравко Legendary | Level 20
  • User avatar
    Lukag Collaborator | Level 8
What do Dropbox user levels mean?