Before you get started with creating your php application, you need to first authenticate the app with Zoho. And to do that there are some configuration procedures that need to be in place. There are two methods in which you can authenticate your application:
- Passing a configuration array - and then call ZCRMRestClient::initialize($configuration);
- The array option is available only for version 1.1.0 and above.
- Using properties files in resources folder- and then call ZCRMRestClient::initialize();
Properties file
Your OAuth Client details should be given to the PHP SDK as a property file. In PHP SDK, we have placed a configuration file (oauth_configuration.properties). Please place the respective values in that file. You can find that file under ‘vendor/zohocrm/php-sdk/src/resources’.
Based on your domain(EU,CN) please change the value of 'accounts_url'. Default value set as US domain. Please fill only the following keys.

Only the keys displayed above are to be filled.
- client_id, client_secret and redirect_uri are your OAuth client’s configurations that you get after registering your Zoho client.
- access_type must be set to offline only because online OAuth client is not supported by the PHP SDK as of now.
- persistence_handler_class is the implementation of the ZohoOAuthPersistenceInterface i.e. ZohoOAuthPersistenceHandler.
- token_persistence_path is the path to store the OAuth related tokens in file. If this is set, no need of database for persistence.
Create a file named "ZCRMClientLibrary.log" in your client app machine and mention the absolute path of the created file in configuration.properties for the key “applicationLogFilePath”. You can find that file under 'vendor/zohocrm/php-sdk/src/resources'. This file is to log the exceptions occurred during the usage of PHP SDK.
Please fill only the following key
To make API calls to sandbox account, please change the value of following key to true in configurations.properties file. By default the value is false.
If your application needs only a single user authentication then you have to set the user EmailId in configurations.properties file as given below:
In order to work with multi user authentication, you need to set the user EmailId in PHP super global variable ‘$_SERVER’ as given below:
You can use $_SERVER variable for single user authentication as well, but it is recommended to go with setting up of email Id in configuration.properties file.
If you do not set the user email as a super global variable, then SDK expects it from configuration.properties file. If user email is not set in any of these two then PHP SDK will throw exception.
Configuration Array
You can now pass the configuration values as php array(key-value pair) as argument when you call the ZCRMRestclient::initialize() function. Below is the list of keys that are to be in the array.
Mandatory Keys
| Optional Keys
|
---|
client_id
| applicationLogFilePath
|
client_secret
| sandbox
|
redirect_uri
| apiBaseUrl
|
currentUserEmail
| apiVersion
|
client_secret
| access_type
|
| accounts_url
|
| persistence_handler_class
|
| token_persistence_path
|

Note

- The key "currentUserEmail" must be specified if not present globally(existing functionality).
- If the Optional keys are not specified, their default values will be assigned automatically.
- The 'apiBaseUrl' and 'accounts_url' are mandatory in case the user is not in the "com" domain.
Below is an example of a PHP array containing the mandatory keys.
- $configuration = array("client_id"=>"value","client_secret"=>"value","redirect_uri"=>"value","currentUserEmail"=>"value");
Below is an example of a PHP array containing all the keys.
- $configuration=array("client_id"=>"value","client_secret"=>"value","redirect_uri"=>"value","currentUserEmail"=>"value","applicationLogFilePath"=>"value", "sandbox"=>"value","apiBaseUrl"=>"value","apiVersion"=>"value",access_type"=>"value","accounts_url"=>"value","persistence_handler_class"=>"value","token_persistence_path"=>"value");