Configuration
Before you get started with creating your C# application, you need to register your client and authenticate the app with Zoho.
Mandatory Keys | Optional Keys |
---|---|
User | Logger |
Environment | store |
Token | SDKConfig |
RequestProxy | |
ResourcePath |
Follow the below steps to configure the SDK.
Create an instance of the Logger Class to log exception and API information. By default, the SDK constructs a Logger instance with level - INFO and file_path - (sdk_logs.log parallel to bin/(Debug or Release) folder )
/* * Create an instance of Logger Class that requires the following * Level -> Level of the log messages to be logged. Can be configured by typing Levels "." and choose any level from the list displayed. * FilePath -> Absolute file path, where messages need to be logged. */ Logger logger = new Logger.Builder() .Level(Logger.Levels.ALL) .FilePath("/Users/Documents/csharp_sdk_log.log") .Build();
Create an instance of UserSignature that identifies the current user.
//Create an UserSignature instance that takes user Email as parameter UserSignature user = new UserSignature("abc@zoho.com");
Configure the API environment which decides the domain and the URL to make API calls.
/* * Configure the environment * which is of the pattern Domain.Environment * Available Domains: USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter * Available Environments: PRODUCTION, DEVELOPER, SANDBOX */ Environment environment = USDataCenter.PRODUCTION;
Create an instance of OAuthToken with the information that you get after registering your Zoho client.
/* * Create a Token instance that requires the following * clientId -> OAuth client id. * clientSecret -> OAuth client secret. * refreshToken -> REFRESH token. * accessToken -> Access token. * grantToken -> GRANT token. * id -> User unique id. * redirectURL -> OAuth redirect URL. */ //Create a Token instance // if refresh token is available // The SDK throws an exception, if the given id is invalid. Token token = new OAuthToken.Builder() .Id("id") .Build(); // if grant token is available Token token = new OAuthToken.Builder() .ClientId("clientId") .ClientSecret("clientSecret") .GrantToken("grantToken") .RedirectURL("redirectURL") .Build(); // if ID (obtained from persistence) is available Token token = new OAuthToken.Builder() .ClientId("clientId") .ClientSecret("clientSecret") .RefreshToken("refreshToken") .RedirectURL("redirectURL") .Build(); // if access token is available Token token = new OAuthToken.Builder() .AccessToken("accessToken") .Build();
Create an instance of TokenStore to persist tokens used for authenticating all the requests. By default, the SDK creates the sdk_tokens.txt file (parallel to to bin/(Debug or Release) folder) to persist the tokens.
/* * Create an instance of DBStore. * Host -> DataBase host name. Default "localhost" * DatabaseName -> DataBase name. Default "zohooauth" * UserName -> DataBase user name. Default "root" * Password -> DataBase password. Default "" * PortNumber -> DataBase port number. Default "3306" * TableName -> Table Name. Default value "oauthtoken" */ //TokenStore tokenstore = new DBStore.Builder().Build(); TokenStore tokenstore = new DBStore.Builder() .Host("hostName") .DatabaseName("dataBaseName") .TableName("tableName") .UserName("userName") .Password("password") .PortNumber("portNumber") .Build(); //TokenStore tokenstore = new FileStore("absolute_file_path"); //TokenStore tokenStore = new CustomStore();
Create an instance of SDKConfig containing the SDK configuration.
/* * By default, the SDK creates the SDKConfig instance * autoRefreshFields (default - false) * if true - all the modules' fields will be auto-refreshed in the background, every hour. * if false - the fields will not be auto-refreshed in the background. The user can manually delete the file(s) or refresh the fields using methods from ModuleFieldsHandler(com.zoho.crm.api.util.ModuleFieldsHandler) * * pickListValidation (default - true) * if true - value for any picklist field will be validated with the available values. * if false - value for any picklist field will not be validated, resulting in creation of a new value. */ SDKConfig config = new SDKConfig.Builder().AutoRefreshFields(false).PickListValidation(false).Build();
The path containing the absolute directory path to store user specific files containing module fields information. By default, the SDK stores the user-specific files in a folder parallel to bin/(Debug or Release)
string resourcePath = "/Users/user_name/Documents/csharpsdk-application";
Create an instance of RequestProxy containing the proxy properties of the user.
/** * Create an instance of RequestProxy class that takes the following parameters * Host -> Host * Port -> Port Number * User -> User Name * Password -> Password * UserDomain -> User Domain */ RequestProxy requestProxy = new RequestProxy.Builder() .Host("proxyHost") .Port(proxyPort) .User("proxyUser") .Password("password") .UserDomain("userDomain") .Build();
Initialize the SDK and make API calls.