Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
Hello Experts
I am New To Dropbox Api And Today i was trying to uplaod a file from api but got error .
Unknown API function: "files/upload \\eHiSS5jxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
i am using Http api and my code is
function main()
local oHTTP,cJSON,url
setmode(25,80)
ctoken := "<REDACTED>"
url := "https://content.dropboxapi.com/2/files/upload \" + ctoken
cJSON := '{"c:\tmp\pdf\CKF1907319.pdf","mode": "add","autorename": true,"mute": false,"strict_conflict": false,}'
URL
? cjson
wt = inkey(0)
oHTTP := CREATEOBJECT('Msxml2.ServerXMLHTTP.6.0')
oHTTP:OPEN("POST", url , .F.)
oHTTP:setRequestHeader("Content-Type", "application/octet-stream")
oHTTP:SEND(cJSON)
IF oHTTP:status != 200
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
? "Error"
ELSE
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
ENDIF
wt = inkey(0)
return
Please me to solve this issue
Vikram
[ Cross-linking for reference: https://stackoverflow.com/questions/61251822/unknown-api-function-files-upload ]
I've posted an answer on your StackOverflow question. Hope this helps!
Thank For your reply
But After Change the url as you suggested i got same error
Unknown API function: "files/upload \\Authorization:eHiSS5jXq0AAAAAAAAAAduAlRf3zXNAV8zYWtJ12Iirzoxxxxxxxxxxx".
function main()
local oHTTP,cJSON,url
setmode(25,80)
ctoken := "eHiSS5jXq0AAAAAAAAAAduAlRf3zXNAV8zYWtJ1xxxxxxxxxxxxxxxxx"
* // cJSON = {"path": "hb_cwd()+"report.txt","mode": "add","autorename": true,"mute": false,"strict_conflict": false"}
url := "https://content.dropboxapi.com/2/files/upload \" + "Authorization:" + ctoken
cJSON := '{"c:\tmp\pdf\CKF1907319.pdf","mode": "add","autorename": true,"mute": false,"strict_conflict": false,}'
? URL
? cjson
wt = inkey(0)
oHTTP := CREATEOBJECT('Msxml2.ServerXMLHTTP.6.0')
oHTTP:OPEN("POST", url , .F.)
oHTTP:setRequestHeader("Content-Type", "application/octet-stream")
oHTTP:SEND(cJSON)
IF oHTTP:status != 200
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
? "Error"
ELSE
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
ENDIF
wt = inkey(0)
return
please give example in http format how the api link look like
https://content.dropboxapi.com/2/files/upload \Authorization:eHiSS5jXq0AAAAAAAAA
AduAlRf3zXNAV8zYWtJ12IirzonOa58ixxxxxxxxxxx
{"c:\tmp\pdf\CKF1907319.pdf","mode": "add","autorename": true,"mute": false,"str
ict_conflict": false,}
Please help to issue the error
Thank You
Vikram
In this code, you're still putting the access token on the URL, but additionally with the string "Authorization". You should instead be sending this as a header. Based on the rest of your code, for your client that would probably look something like this:
oHTTP:setRequestHeader("Authorization", "Bearer" + ctoken)
Likewise, note that for /2/files/upload, the API call parameters (your cJSON), should go in a "Dropbox-API-Arg" header, and the file data to upload should go in the request body. Please refer to the /2/files/upload documentation for more information on how to properly format this API call.
Thank You SIr
But Couldn't understand the issue please check my code and rectfiy the code where am wrong .
function main()
local oHTTP,cJSON,url
setmode(25,80)
ctoken := "eHiSS5jXq0AAAAAAAAAAduAlRf3zXNAV8zYWtxxxxxxxxxxxxxx"
url := "https://content.dropboxapi.com/2/files/upload \"
cJSON := '{c:\tmp\pdf\CKF1907319.pdf, "mode": "add","autorename": true,"mute": false,"strict_conflict": false,}'
oHTTP := CREATEOBJECT('Msxml2.ServerXMLHTTP.6.0')
oHTTP:OPEN("POST", url , .F.)
oHTTP:setRequestHeader("Authorization: Bearer " + ctoken)
oHTTP:setRequestHeader("Dropbox-API-Arg:")
oHTTP:setRequestHeader("Content-Type", "application/octet-stream")
oHTTP:SEND(cJSON)
IF oHTTP:status != 200
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
? "Error"
ELSE
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
ENDIF
wt = inkey(0)
return
Please help me to solve this issuse
Thank you
Vikram
We're happy to help with any questions or issues you might have about the Dropbox API itself, but we can't debug or write code for you, especially when you're using a client not made or supported by Dropbox (in this case, oHTTP). You'll need to refer to the Dropbox API documentation for information on what formats and parameters to use when calling the Dropbox API, and then write the code for your library/platform accordingly. I also recommend referring to the documentation for your library/platform as a reference for how to construct the HTTPS requests as needed.
Looking at your latest code though, a few more things I notice:
Hello Sir
Could Not able to Understand what to pass the values in cJson and dropbox-Api-Arg i am getting some errors please help me to solve this issue
File Which i have to upload is c:\Tmp\Pdf\Email.pdf
and want to dropbox in Folder Names Abc2020 . how to pass both path in Cjson and Dropbox-Api-arg
This Is my code
function main()
local oHTTP,cJSON,url
setmode(25,80)
ctoken := "eHiSS5jXq0AAAAAAAAAAduAlRf3zXNAV8zYWtJ1xxxxxxxxxxxxxxxxxxxxxx"
cJSON := '{\"C:\TMP\PDF\EMAIL.PDF","mode": "add","autorename": true,"mute": false,"strict_conflict": false}'
url := 'https://content.dropboxapi.com/2/files/upload'
// cJSON := '{"path"\cPath, "mode": "add","autorename": true,"mute": false,"strict_conflict": false,}'
oHTTP := CREATEOBJECT('Msxml2.ServerXMLHTTP.6.0')
oHTTP:OPEN("POST", url , .F.)
oHttp:setRequestHeader( "Authorization", "Bearer " + ctoken )
oHttp:setRequestHeader( "Dropbox-API-Arg", '{ "path": "' + cPath + '", "mode" : "add" }' )
oHttp:setRequestHeader( "Content-type", "application/octet-stream" )
oHttp:SEND( cJSON )
IF oHTTP:status != 200
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
? "Error"
ELSE
? oHTTP:responseText
hb_memowrit("response.txt",oHTTP:responseText)
ENDIF
wt = inkey(0)
return
Sir My Question is what to pass in Cjson and
what to pass in Request header .
oHttp:setRequestHeader( "Dropbox-API-Arg", '{ "path": "' + cPath + '", "mode" : "add" }' )
Thanks & Regard
Vikram Chhajer
The value you pass in the "Dropbox-API-Arg" header should be a JSON string containing the parameters you want to use for the /2/files/upload call. You can find information on each of the parameters here:
https://www.dropbox.com/developers/documentation/http/documentation#files-upload
I do recommend using a JSON library to build your JSON string instead of trying to construct it manually.
The API v2 Explorer may also be a useful tool for prototyping calls and seeing what they would look like:
https://dropbox.github.io/dropbox-api-v2-explorer/#files_upload
Thank You Sir
Cani Get Your Whatsapp number so can call You And try to understand the soultion . If Your dont Mind sir.
Thank You
Vikram
We're not currently set up to provide API support over the phone or chat, but I'm happy to help here in the forum.
The way we work is changing. Share and discover new ways to work smarter with Dropbox in our community.
Sound good? Let's get started.Hi there!
If you need more help you can view your support options (expected response time for a ticket is 24 hours), or contact us on Twitter or Facebook.
For more info on available support options, see this article.
If you found the answer to your question, please 'like' the post to say thanks to the user!