We’re Still Here to Help (Even Over the Holidays!) - find out more here.
Forum Discussion
kirantara
6 years agoExplorer | Level 3
Error In Uploading a file
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 \\eHiSS5jxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
Greg-DB
Dropbox Community Moderator
6 years ago[ 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!
kirantara
6 years agoExplorer | Level 3
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
- Greg-DB6 years ago
Dropbox Community Moderator
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.
- kirantara6 years agoExplorer | Level 3
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)
returnPlease help me to solve this issuse
Thank you
Vikram
- Greg-DB6 years ago
Dropbox Community Moderator
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:
- Your cJSON begins with '{c:\tmp\pdf\CKF1907319.pdf,', but per the /2/files/upload interface, that should be more like: '{"path": "/CKF1907319.pdf",'. That's supposed to be the path on Dropbox where you want to put the uploaded file.
- You're not actually setting anything in the "Dropbox-API-Arg" header. That should be set with your API call parameters, which you have in cJSON.
- I don't see where you actually send the file data to upload in the request body. Perhaps that should be done in oHTTP:SEND?
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!