How To Automatically Upload a Zoho File Attachment to Dropbox from Zoho Creator using Dropbox API v2 and Zoho postUrl
I'm an idiot, so this took about 6 hours for me to figure out, but apparently many people have not been able to figure this out, and I could not find a complete and working solution online anywhere.
If you want to be able to upload a file to Dropbox from Zoho Creator, you have to create a custom function like below (here I called the function "Dropbox", under namespace "Create"). In the function, the ID is being passed to it from the underlying form entry.
void Create.Dropbox(int id)
{
url = "https://api.dropboxapi.com/2/files/save_url";
headers = {"Authorization":"Bearer XXXXX","Content-Type":"application/json"};
data = {"path":"/FFFF/TTTT.XXX","url":"YYYY"};
datastring = data.toString();
response = postUrl(url,datastring,headers,false);
}
... where XXXXX is your secret Dropbox Token, and YYYY is the url of the file you are uploading, and FFFF is the Dropbox folder to which the file is being uploaded, TTTT is the desired filename, and XXX is the desired extension.
This uses v2 of the Dropbox API. You can get your Dropbox token and use the very helpful Dropbox API Explorer here:
https://dropbox.github.io/dropbox-api-v2-explorer/#files_save_url
The key thing that was difficult to figure out and is not well documented is that the function toString() is necessary because Dropbox is expecting JSON and although the variable "data" above looks like JSON, it is not.
If you want to be able to upload a file to Dropbox from Zoho Creator, you have to create a custom function like below (here I called the function "Dropbox", under namespace "Create"). In the function, the ID is being passed to it from the underlying form entry.
void Create.Dropbox(int id)
{
url = "https://api.dropboxapi.com/2/files/save_url";
headers = {"Authorization":"Bearer XXXXX","Content-Type":"application/json"};
data = {"path":"/FFFF/TTTT.XXX","url":"YYYY"};
datastring = data.toString();
response = postUrl(url,datastring,headers,false);
}
... where XXXXX is your secret Dropbox Token, and YYYY is the url of the file you are uploading, and FFFF is the Dropbox folder to which the file is being uploaded, TTTT is the desired filename, and XXX is the desired extension.
This uses v2 of the Dropbox API. You can get your Dropbox token and use the very helpful Dropbox API Explorer here:
https://dropbox.github.io/dropbox-api-v2-explorer/#files_save_url
The key thing that was difficult to figure out and is not well documented is that the function toString() is necessary because Dropbox is expecting JSON and although the variable "data" above looks like JSON, it is not.
Comments