Skip to main content

Configuration

Before you get started with creating your Scala application, you need to register your client and authenticate the app with Zoho.

Mandatory KeysOptional Keys
userlogger
environmentstore
tokensdk_config
 proxy
 resource_path

Follow the below steps to configure the SDK.

  1. Create an instance of Logger Class to log exception and API information.

    
    
    
      import com.zoho.api.logger.Logger
      import com.zoho.api.logger.Logger.Levels
    /*
      * 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.
    */
    var logger = new Logger.Builder()
    .level(Logger.Levels.ALL)
    .filePath("/Users/user_name/Documents/scala_sdk_log.log")
    .build
    
  2. Create an instance of UserSignature that identifies the current user.

    
    
    import com.zoho.crm.api.UserSignature
    
    //Create an UserSignature instance that takes user Email as parameter
    var user = new UserSignature("abc@zoho.com")
    
  3. 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
    */
    val env = USDataCenter.PRODUCTION
    
  4. 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.
    var token = new OAuthToken.Builder()
    .id("id")
    .build()
    
    // if grant token is available
    var token = new OAuthToken.Builder()
    .clientID("clientId")
    .clientSecret("clientSecret")
    .grantToken("grantToken")
    .redirectURL("redirectURL")
    .build()
    
    // if ID (obtained from persistence) is available
    var token = new OAuthToken.Builder()
    .clientID("clientId")
    .clientSecret("clientSecret")
    .refreshToken("refreshToken")
    .redirectURL("redirectURL")
    .build()
    
    // if access token is available
    var token = new OAuthToken.Builder()
    .accessToken("accessToken")
    .build()
    
  5. Create an instance of TokenStore to persist tokens used for authenticating all the requests.

    
    
    /*
    * Create an instance of DBStore that requires the following
    * host -> 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"
    * tabletName -> DataBase table name. Default value "oauthtoken"
    */
    //var tokenstore = new DBStore.Builder().build
    
    var tokenstore = new DBStore.Builder()
    .host("hostName")
    .databaseName("databaseName")
    .tableName("tableName")
    .userName("userName")
    .password("password")
    .portNumber("portNumber")
    .build
    //var tokenstore = new FileStore("/Users/user_name/Documents/scala_sdk_token.txt")
    
    //var tokenStore = new CustomStore()
    
  6. Create an instance of SDKConfig containing the SDK configuration.

    
    
    /*
    * autoRefreshFields
    * 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
    * 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.
    * True - the SDK validates the input. If the value does not exist in the pick list, the SDK throws an error.
    * False - the SDK does not validate the input and makes the API request with the user’s input to the pick list
    * 
    * connectionTimeout
    * A Integer field to set connection timeout 
    * 
    * requestTimeout
    * A Integer field to set request timeout 
    * 
    * socketTimeout
    * A Integer field to set socket timeout 
    */
    var sdkConfig = new SDKConfig.Builder().pickListValidation(false).autoRefreshFields(false).connectionTimeout(1000).requestTimeout(1000).socketTimeout(1000).build
    
  7. 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 within a folder in the current working directory.

    
    
    var resourcePath = "/Users/user_name/Documents/scalasdk-application"
    
  8. Create an instance of RequestProxy containing the proxy properties of the user.

    
    
    /*
    * Create an instance of RequestProxy
    * host -> proxyHost
    * port -> proxyPort
    * user -> proxyUser
    * password -> password
    * userDomain -> userDomain
    */
    var requestProxy = new RequestProxy.Builder()
      .host("proxyHost")
      .port(80)
      .user("proxyUser")
      .password("password")
      .userDomain("userDomain")
      .build()
    
  9. Initialize the SDK and make API calls.