1. Go to this page and download the library: Download zohocrm/php-sdk-2.1 library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
//Parameter containing the absolute file path to store tokens
$tokenstore = new FileStore("/Documents/php_sdk_token.txt");
use com\zoho\api\authenticator\Token;
use com\zoho\crm\api\exception\SDKException;
use com\zoho\crm\api\UserSignature;
use com\zoho\api\authenticator\store\TokenStore;
class CustomStore implements TokenStore
{
/**
* @param user A UserSignature class instance.
* @param token A Token (com\zoho\api\authenticator\OAuthToken) class instance.
* @return A Token class instance representing the user token details.
* @throws SDKException if any problem occurs.
*/
public function getToken($user, $token)
{
// Add code to get the token
return null;
}
/**
* @param user A UserSignature class instance.
* @param token A Token (com\zoho\api\authenticator\OAuthToken) class instance.
* @throws SDKException if any problem occurs.
*/
public function saveToken($user, $token)
{
// Add code to save the token
}
/**
* @param token A Token (com\zoho\api\authenticator\OAuthToken) class instance.
* @throws SDKException if any problem occurs.
*/
public function deleteToken($token)
{
// Add code to delete the token
}
/**
* @return array An array of Token (com\zoho\api\authenticator\OAuthToken) class instances
*/
public function getTokens()
{
//Add code to retrieve all the stored tokens
}
public function deleteTokens()
{
//Add code to delete all the stored tokens.
}
/**
* @param id A string.
* @param token A Token (com\zoho\api\authenticator\OAuthToken) class instance.
* @return A Token class instance representing the user token details.
* @throws SDKException if any problem occurs.
*/
public function getTokenById($id, $token)
{
// Add code to get the token using unique id
return null;
}
}
//Create an UserSignature instance that takes user Email as parameter
$user = new UserSignature("[email protected]");
/*
* Configure the environment
* which is of the pattern Domain::Environment
* Available Domains: USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter
* Available Environments: PRODUCTION(), DEVELOPER(), SANDBOX()
*/
$environment = USDataCenter::PRODUCTION();
$token = (new OAuthBuilder())
->clientId("clientId")
->clientSecret("clientSecret")
->grantToken("grantToken")
->redirectURL("redirectURL")
->build();
$token = (new OAuthBuilder())
->clientId("clientId")
->clientSecret("clientSecret")
->refreshToken("refreshToken")
->redirectURL("redirectURL")
->build();
$token = (new OAuthBuilder())
->accessToken("accessToken")
->build();
/*
* Create an instance of Logger Class that d. 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 = (new LogBuilder())
->level(Levels::INFO)
->filePath("/Documents/php_sdk_log.log")
->build();
/*
* Create an instance of DBStore that "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"
*/
$tokenstore = (new DBBuilder())
->host("hostName")
->databaseName("dataBaseName")
->userName("userName")
->password("password")
->portNumber("portNumber")
->tableName("tableName")
->build();
$tokenstore = new FileStore("absolute_file_path");
$tokenstore = new CustomStore();
/*
* By default, the SDK creates the SDKConfig instance
* autoRefreshFields (default value is false)
* true - all the modules' fields will be auto-refreshed in the background, every hour.
* 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 value is 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.
* 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
*
* enableSSLVerification (default value is true)
* A boolean field to enable or disable curl certificate verification
* true - the SDK verifies the authenticity of certificate
* false - the SDK skips the verification
*/
$autoRefreshFields = false;
$pickListValidation = false;
$enableSSLVerification = true;
//The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
$connectionTimeout = 2;
//The maximum number of seconds to allow cURL functions to execute.
$timeout = 2;
$sdkConfig = (new SDKConfigBuilder())
->autoRefreshFields($autoRefreshFields)
->pickListValidation($pickListValidation)
->sslVerification($enableSSLVerification)
->connectionTimeout($connectionTimeout)
->timeout($timeout)
->build();
$requestProxy = (new ProxyBuilder())
->host("proxyHost")
->port("proxyPort")
->user("proxyUser")
->password("password")
->build();
$resourcePath = "/Documents/phpsdk-application";
use com\zoho\api\authenticator\OAuthBuilder;
use com\zoho\api\authenticator\store\DBBuilder;
use com\zoho\api\authenticator\store\FileStore;
use com\zoho\crm\api\InitializeBuilder;
use com\zoho\crm\api\UserSignature;
use com\zoho\crm\api\dc\USDataCenter;
use com\zoho\api\logger\LogBuilder;
use com\zoho\api\logger\Levels;
use com\zoho\crm\api\SDKConfigBuilder;
use com\zoho\crm\api\ProxyBuilder;
->redirectURL("redirectURL")
->build();
$tokenstore = (new DBBuilder())
->host("hostName")
->databaseName("dataBaseName")
->userName("userName")
->password("password")
->portNumber("portNumber")
->tableName("tableName")
->build();
$autoRefreshFields = false;
$pickListValidation = false;
$connectionTimeout = 2;//The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
$timeout = 2;//The maximum number of seconds to allow cURL functions to execute.
$sdkConfig = (new SDKConfigBuilder())
->autoRefreshFields($autoRefreshFields)
->pickListValidation($pickListValidation)
->sslVerification($enableSSLVerification)
->connectionTimeout($connectionTimeout)
->timeout($timeout)
->build();
$resourcePath = "/Documents/phpsdk-application";
$requestProxy = (new ProxyBuilder())
->host("proxyHost")
->port("proxyPort")
->user("proxyUser")
->password("password")
->build();
(new InitializeBuilder())
->user($user)
->environment($environment)
->token($token)
->store($tokenstore)
->SDKConfig($configInstance)
->resourcePath($resourcePath)
->logger($logger)
->requestProxy($requestProxy)
->initialize();
}
}
(new InitializeBuilder())
->user($user)
->environment($environment)
->token($token)
->SDKConfig($configInstance)
->switchUser();