This article will help you to generate access token for zoho api calls using the refresh token for the C# application.
Here is the blog to get the refresh token for the application using the client ID. Please review the link
Add the keys in your web config file
<add key="ZohoRefreshToken" value="1000.XXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXX" /> <add key="ZohoClientId" value="1000.XXXXXXXXXXXXXXXXXXXXXXX" /> <add key="ZohoClientSecret" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" />
Add the below class to deserialize the response from zoho
public class ZohoRefreshTokenResponse { public string access_token { get; set; } public string api_domain { get; set; } public string token_type { get; set; } public string expires_in { get; set; } }
Use the below code to call the refresh token API
string url = "https://accounts.zoho.com/oauth/v2/token"; string postData = "client_id=" + ConfigurationManager.AppSettings["ZohoClientId"].ToString() + "&client_secret=" + ConfigurationManager.AppSettings["ZohoClientSecret"].ToString() + "&refresh_token=" + ConfigurationManager.AppSettings["ZohoRefreshToken"].ToString() + "&grant_type=refresh_token"; byte[] data = Encoding.ASCII.GetBytes(postData); System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); httpWebRequest.ContentType = "application/x-www-form-urlencoded"; httpWebRequest.Method = "POST"; Stream requestStream = httpWebRequest.GetRequestStream(); requestStream.Write(data, 0, data.Length); requestStream.Close(); var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); if (httpResponse.StatusCode == HttpStatusCode.OK || httpResponse.StatusCode == HttpStatusCode.Created) { using (var streamReader = new StreamReader(httpResponse.GetResponseStream(), Encoding.Default)) { result = streamReader.ReadToEnd(); } } if (!string.IsNullOrEmpty(result)) { var res = Newtonsoft.Json.JsonConvert.DeserializeObject<ZohoRefreshTokenResponse>(result); return res.access_token; }
Using the above code you can get the new access token. That token we can use to call the other zoho API.