Examples
PHP Example
PHP Example using Projects
<?php /* Set the Request Url (without Parameters) here */ $request_url = 'https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/'; /* Which Request Method do I want to use ? GET, POST or DELETE */ $method_name = 'GET'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); /* Here you can set all Parameters based on your method_name */ if ($method_name == 'GET') { $request_parameters = array( 'index' => 1, 'range' => 1, 'status' => 'active' ); $request_url .= '?' . http_build_query($request_parameters); } if ($method_name == 'POST') { $request_parameters = array( 'name' =>'Warehouse ledger', 'description' => 'ledger balance of stocks', ); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request_parameters)); } if ($method_name == 'DELETE') { $request_url = 'https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/[PROJECTID]/'; curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); } /* Here you can set authorization token and response Content Type */ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Zoho-oauthtoken <YOUR_ACCESS_TOKEN>','Accept: application/json')); /* Let's give the Request Url to Curl */ curl_setopt($ch, CURLOPT_URL, $request_url); /* Yes we want to get the Response Header (it will be mixed with the response body but we'll separate that after) */ curl_setopt($ch, CURLOPT_HEADER, TRUE); /* Allows Curl to connect to an API server through HTTPS */ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); /* Let's get the Response ! */ $response = curl_exec($ch); /* We need to get Curl infos for the http_code */ $response_info = curl_getinfo($ch); /* Don't forget to close Curl */ curl_close($ch); /* Here we get the Response Body */ $response_body = substr($response, $response_info['header_size']); // Response HTTP Status Code echo "Response HTTP Status Code : "; echo $response_info['http_code']; echo "\n"; // Response Body echo "Response Body : "; echo $response_body; ?>
Python Example
Python Example using Task Module
#Begin by importing the "requests" module import requests #Set the Request Method method = "GET"; #Set the headers headers = {'Authorization': 'Zoho-oauthtoken <YOUR_ACCESS_TOKEN>'} #Set the URL and Parameters to GET, POST and DELETE using Request Method url = ""; params = ""; r = ""; files = "";
if method=="GET": url = "https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/" params = {"index":1, "range":3} r = requests.get(url, params=params, headers=headers); elif method=="POST": url = "https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/" params = {"name":"Client Call"} #To attach files,if any files = {"uploaddoc": open("samplefile.jpg", "rb")} r = requests.post(url, params=params, headers=headers, files=files); elif method=="DELETE": url = "https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/" r = requests.delete(url, headers=headers); #Response HTTP Status Code print "Response HTTP Status Code : ", r.status_code #Response Body print "Response Body : ", r.content
Java Example
Java Example using Timesheet Module
/* * java import */ import java.net.HttpURLConnection; import java.net.URL; import java.io.*; class TimesheetDemo { public static void main(String[] args) { URL url; HttpURLConnection request = null; String method = "GET"; String parameters = ""; try { /* * Set the URL and Parameters to create connection * Set Request Method (GET, POST or DELETE) */ if("GET".equals(method)) { parameters = "&users_list=all&view_type=week&date= 05-11-2014&bill_status=All&component_type=general"; url = new URL("https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/ [PROJECTID]/logs/?" + parameters); request = (HttpURLConnection) url.openConnection(); request.setRequestMethod("GET"); } else if("POST".equals(method)) { parameters = "&name=Registration_Document_33A&date= 05-14-2014&bill_status=Billable&hours=02:20"; url = new URL("https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/ [PROJECTID]/logs/?" + parameters); request = (HttpURLConnection) url.openConnection(); request.setRequestMethod("POST"); } else if("DELETE".equals(method)) { url = new URL("https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/ [PROJECTID]/logs/[LOGID]/?"); request = (HttpURLConnection) url.openConnection(); request.setRequestMethod("DELETE"); } // add request header request.setRequestProperty("Accept", "application/json"); request.setRequestProperty("Authorization", "Zoho-oauthtoken <YOUR_ACCESS_TOKEN>"); request.setDoOutput(true); request.setDoInput(true); request.connect(); // Get Response BufferedReader bf = new BufferedReader(new InputStreamReader(request.getInputStream())); String line; StringBuffer response = new StringBuffer(); while((line = bf.readLine())!=null) { response.append(line); response.append('\r'); } bf.close(); // Response HTTP Status Code System.out.println("Response HTTP Status Code : " + request.getResponseCode()); // Response Body System.out.println("Response Body : " + response.toString()); } catch(Exception e) { e.printStackTrace(); } finally { if(request!=null) { request.disconnect(); } } } }
C# Example
C# Example using Issues module
using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; namespace Demo { public class BugsDemo { private const string URL = "https://projectsapi.zoho.com/portal/restapi/portal/[PORTALID]/projects/[PROJECTID]/bugs/"; private const string GETURL = "https://projectsapi.zoho.com/portal/restapi/portal/[PORTALID]/projects/[PROJECTID]/bugs/[BUGID]/"; public static void Main(string[] args) { HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Zoho-oauthtoken"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string METHOD = "POST"; HttpResponseMessage response = null; if("GET".Equals(METHOD)){ response = client.GetAsync(GETURL).GetAwaiter().GetResult(); /*Add params if need in any API private string urlParameters = "?param1=yourparamvalue¶m2=yourparamvalue"; response = client.GetAsync(urlParameters).Result; */ }else if("POST".Equals(METHOD)){ client.BaseAddress = new Uri(URL); var requestParameters = new Dictionary(); requestParameters.Add("title", "Bug Title"); var reqParams = new FormUrlEncodedContent(requestParameters); response = client.PostAsync(URL, reqParams).GetAwaiter().GetResult(); } // Response HTTP Status Code Console.WriteLine("Response HTTP Status Code : " + response.StatusCode); // Response Body Console.WriteLine("Response Body : " + response.Content.ReadAsStringAsync().GetAwaiter().GetResult()); client.Dispose(); } } }
Deluge Example
Deluge Example
The following example creates a subtask for a specific task by performing an API call on Create Subtask API using the invokeUrl Deluge task. The IDs (portal ID, project ID and task ID) required for performing this function are fetched using their respective integration tasks.
// Fetch portal ID of the first portal first_portal_id = zoho.projects.getPortals().get("portals").get(0).get("id"); // Fetch project ID of the first project first_project_id = zoho.projects.getProjectDetails(first_portal_id).get(0).get("id"); // Fetch task ID of the first task first_task_id = zoho.projects.getRecords(first_portal_id, first_project_id,"tasks").get("tasks").get(0).get("id") ; // Construct map to hold the API params params_map = Map(); params_map.put("name","Subtask 4"); params_map.put("start_date", "01-04-2020"); params_map.put("start_date", "01-05-2020"); params_map.put("priority", "High"); params_map.put("description", "Subtask 4 description"); //Execute invoke URL task to call the required API response = invokeurl [ url: "https://projectsapi.zoho.com/restapi/portal/"+first_portal_id+"/projects/"+first_project_id+"/tasks/"+first_task_id+"/subtasks/" type: POST parameters: params_map connection : projects_connection ]; info response;