Configuration
Before you get started with creating your TypeScript application, you need to register your client and authenticate the app with Zoho.
Mandatory Keys | Optional Keys |
---|---|
user | logger |
environment | tokenstore |
token | sdkConfig |
requestProxy | |
resourcePath |
Follow the below steps to configure the SDK.
Create an instance of the ZOHOCRMSDK.UserSignature class that identifies the current user.
import * as ZOHOCRMSDK from "@zohocrm/typescript-sdk-2.1"; let user: ZOHOCRMSDK.UserSignature = new ZOHOCRMSDK.UserSignature("abc@zoho.com");
Configure API environment which decides the domain and the URL to make API calls.
import * as ZOHOCRMSDK from "@zohocrm/typescript-sdk-2.1"; /* * Configure the environment * which is of the pattern Domain.Environment * Available Domains: USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter, JPDataCenter * Available Environments: PRODUCTION(), DEVELOPER(), SANDBOX() */ let environment: Environment = ZOHOCRMSDK.USDataCenter.PRODUCTION();
Create an instance of ZOHOCRMSDK.OAuthToken with the information that you get after registering your Zoho client.
import * as ZOHOCRMSDK from "@zohocrm/typescript-sdk-2.1"; /* * 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. let token: ZOHOCRMSDK.OAuthToken = new ZOHOCRMSDK.OAuthBuilder() .id("id") .build(); // if grant token is available let token: ZOHOCRMSDK.OAuthToken = new ZOHOCRMSDK.OAuthBuilder() .clientId("clientId") .clientSecret("clientSecret") .grantToken("grantToken") .redirectURL("redirectURL") .build(); // if ID (obtained from persistence) is available let token: ZOHOCRMSDK.OAuthToken = new ZOHOCRMSDK.OAuthBuilder() .clientId("clientId") .clientSecret("clientSecret") .refreshToken("refreshToken") .redirectURL("redirectURL") .build(); // if access token is available let token: ZOHOCRMSDK.OAuthToken = new ZOHOCRMSDK.OAuthBuilder() .accessToken("accessToken") .build();
Create an instance of ZOHOCRMSDK.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 node_modules)
import * as ZOHOCRMSDK from "@zohocrm/typescript-sdk-2.1"; /* * Create an instance of Logger Class that takes two parameters * 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. */ let logger: ZOHOCRMSDK.Logger = new ZOHOCRMSDK.LogBuilder() .level(ZOHOCRMSDK.Levels.INFO) .filePath("/Users/user_name/Documents/node_sdk_logs.log") .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 node_modules folder) to persist the tokens.
import * as ZOHOCRMSDK from "@zohocrm/typescript-sdk-2.1"; /* * hostName -> DataBase host name. Default value "localhost" * databaseName -> DataBase name. Default value "zohooauth" * userName -> DataBase user name. Default value "root" * password -> DataBase password. Default value "" * portNumber -> DataBase port number. Default value "3306" * tableName -> Table Name. Default value "oauthtoken" */ let tokenstore: ZOHOCRMSDK.DBStore = new ZOHOCRMSDK.DBBuilder().build(); let tokenstore: ZOHOCRMSDK.DBStore = new ZOHOCRMSDK.DBBuilder() .host("hostName") .databaseName("databaseName") .userName("userName") .portNumber("portNumber") .tableName("tableName") .password("password") .build();
Create an instance of ZOHOCRMSDK.SDKConfig containing the SDK configuration.
import {SDKConfig} from "@zohocrm/typescript-sdk-2.0/routes/sdk_config"; import {SDKConfigBuilder} from "@zohocrm/typescript-sdk-2.0/routes/sdk_config_builder"; import * as ZOHOCRMSDK from "@zohocrm/typescript-sdk-2.1"; /* * 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(utils/util/module_fields_handler.ts) * * pickListValidation (default - true) * A boolean field that validates user input for a pick list field and allows or disallows the addition of a new value to the list. * if true - the SDK validates the input. If the value does not exist in the pick list, the SDK throws an error. * if false - the SDK does not validate the input and makes the API request with the user’s input to the pick list */ let sdkConfig: ZOHOCRMSDK.SDKConfig = new ZOHOCRMSDK.SDKConfigBuilder().pickListValidation(false).autoRefreshFields(true).build();
Create an instance of ZOHOCRMSDK.RequestProxy containing the proxy properties of the user.
import * as ZOHOCRMSDK from "@zohocrm/typescript-sdk-2.1"; /* * RequestProxy class takes the following parameters * host -> Host * port -> Port Number * user -> User Name. Default null. * password -> Password. Default null */ let requestProxy: ZOHOCRMSDK.RequestProxy = new ZOHOCRMSDK.ProxyBuilder() .host("proxyHost") .port("proxyPort") .user("proxyUser") .password("password") .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 node_modules
let resourcePath: string = "/Users/user_name/Documents/typescript-app";
Initialize the SDK and make API calls.